Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@casual-simulation/aux-vm

Package Overview
Dependencies
Maintainers
0
Versions
477
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@casual-simulation/aux-vm - npm Package Versions

1
48

0.10.0

Diff

Changelog

Source

V0.10.0

Date: 09/25/2019

Changes:

  • Improvements
    • Added the ability to send and receive webhooks.
      • Send webhooks using the following functions:
        • webhook(options) - options is an object that takes the following properties:
          • method - The HTTP Method that should be used for the request.
          • url - The URL that the request should be made to.
          • responseShout - (Optional) The shout that should happen when a response is received from the server.
          • headers - (Optional) The HTTP headers that should be sent with the request.
          • data - (Optional) The data that should be sent with the request.
        • webhook.post(url, data, options) - Sends a HTTP Post request.
          • url - The URL that the request should be made to.
          • data - (Optional) The data that should be sent with the request.
          • options - (Optional) An object that takes the following properties:
            • responseShout - (Optional) The shout that should happen when a response is received from the server.
            • headers - (Optional) The headers that should be sent with the request.
      • Receive webhooks by registering a handler for the onWebhook() action and send requests to https://auxplayer.com/{context}/{channel}/whatever-you-want.
        • onWebhook() is shouted to the channel that the request was made to and that is an object with the following properties:
          • method - The HTTP Method that the request was made with.
          • url - The URL that the request was made to.
          • data - The JSON data that the request included.
          • headers - The HTTP headers that were included with the request.
    • Added the ability to spy on shouts and whispers via the onShout() event.
      • onShout() is executed on every bot whenever a shout or whisper happens.
        • It is useful for tracking what shouts are being made and modifying responses.
        • Also useful for providing default behaviors.
        • that is an object with the following properties:
          • name is the name of the action being shouted.
          • that is the argument which was provided for the shout.
          • targets is an array of bots that the shout was sent to.
          • listeners is an array of bots that ran a script for the shout.
          • responses is an array of responses that were returned from the listeners.
    • Added events to notify scripts when channels become available.
      • The following events have been added:
        • onChannelSubscribed() - happens the first time a channel is loaded. Sent to every channel that is currently loaded.
        • onChannelUnsubscribed() - happens when a channel is unloaded. Sent to every channel that remains after the channel is unloaded.
        • onChannelStreaming() - happens when a channel is connected and fully synced. Sent to every channel that is currently loaded.
        • onChannelStreamLost() - happens when a channel is disconnected and may not be fully synced. Sent to every channel that is currently loaded.
        • For all events, that is an object with the following properties:
          • channel - The channel that the event is for.
      • The following events have been removed:
        • onConnected()
        • onDisconnected()
    • Added in tags to change the state of the inventory's camera controls:
      • aux.context.inventory.pannable enables and disables the inventory's ability to pan, off by default.
      • aux.context.inventory.resizable enables and disables the inventory's drag to resize functionality, on by default.
      • aux.context.inventory.rotatable enables and disables the inventory's ability to rotate, on by default.
      • aux.context.inventory.zoomable enables and disables the inventory's ability to zoom, on by default.
  • Bug Fixes
    • Resolved issue with the near cliiping plane for the sheet's minifile image.
    • Resolved issues with the create empty bot button not functioning sometimes on mobile.
kallyngowdyyeti
published 0.9.40 •

Changelog

Source

V0.9.40

Date: 09/20/2019

Changes:

  • Improvements
    • Reworked the login functionality to use popups instead of dedicated pages.
      • The login page has been split into two popups:
        • The login popup (account selector).
        • The authorization popup (QR Scanner).
      • The login popup has the following functions:
        • It can be opened by the "Login/Logout" button in the menu.
        • It will display a list of accounts that can be used to login.
        • If no accounts are available, then a username box will be shown.
        • If accounts are available, a new account can be added by clicking the "+" button at the bottom of the list.
        • At any time, the user can close the popup to keep their current login.
        • They can also select the "Continue as Guest" option to login as a guest.
      • The authorization popup has the following functions:
        • It is opened automatically when the user needs to scan an account code.
        • It contains the QR Code scanner to scan the account code.
        • It also contains an input box to manually enter the code.
        • Closing the popup automatically logs the user in as a guest.
    • Made the account QR Code blue.
    • Added the ability to click the account QR Code to copy it to the clipboard.
  • Bug Fixes
    • Fixed a couple communication issues between the server and client during login.
      • One such issue could potentially leave the client in state where future changes would not be synced to the server.
kallyngowdyyeti
published 0.9.39 •

Changelog

Source

V0.9.39

Date: 09/19/2019

Changes:

  • Improvements
    • Added support for accepting payments via Stripe.
      • To get started with Stripe, first register for an account on their website.
      • Second, copy your publishable key from the stripe dashboard and add it to the channel's config file in the stripe.publishableKey tag.
      • Third, make a new channel. This will be the "processing" channel which will contain all the information actually needed to charge users for payments. And contain the code to actually complete a charge.
        • In this channel, add your Stripe secret key to the config file in the stripe.secretKey tag.
      • At this point, you are all setup to accept payments. Use the following functions:
        • player.checkout(options): Starts the checkout process for the user. Accepts an object with the following properties:
          • productId: The ID of the product that is being purchased. This is a value that you make up to distinguish different products from each other so you know what to charge.
          • title: The title message that should appear in the checkout box.
          • description: The description message that should appear in the checkout box.
          • processingChannel: The channel that payment processing should happen on. This is the channel you made from step 3.
          • requestBillingAddress: Whether to request billing address information with the purchase.
          • paymentRequest: Optional values for the "payment request" that gives users the option to use Apple Pay or their saved credit card information to checkout. It's an object that takes the following properties:
            • country: The two-letter country code of your Stripe account.
            • currency: The three letter currency code. For example, "usd" is for United States Dollars.
            • total: The label and amount for the total. An object that has the following properties:
              • label: The label that should be shown for the total.
              • amount: The amount that should be charged in the currency's smallest unit. (cents, etc.)
        • server.finishCheckout(options): Finishes the checkout process by actually charging the user for the product. Takes an object with the following properties:
          • token: The token that was produced from the onCheckout() call in the processing channel.
          • amount: The amount that should be charged in the currency's smallest unit.
          • currency: The three character currency code.
          • description: The description that should be included in the receipt.
          • extra: Extra data that should be sent to the onPaymentSuccessful() or onPaymentFailed() actions.
      • Additionally, the following actions have been added:
        • onCheckout(): This action is called on both the normal channel and the processing channel when the user submits a payment option to pay for the product/service. that is an object with the following properties:
          • token: The Stripe token that was created to represent the payment details. In the processing channel, this token can be passed to server.finishCheckout() to complete the payment process.
          • productId: The ID of the product that is being purchased. This is useful to determine which product is being bought and which price to charge.
          • user: (Processing channel only) Info about the user that is currently purchasing the item. It is an object containing the following properties:
            • username: The username of the user. (Shared for every tab & device that the user is logged into)
            • device: The device ID of the user. (Shared for every tab on a single device that the user is logged into)
            • session: The session ID of the user. (Unique to a single tab)
        • onPaymentSuccessful(): This action is called on the processing channel when payment has been accepted after server.finishCheckout() has completed. that is an object with the following properties:
          • bot: The bot that was created for the order.
          • charge: The info about the charge that the Stripe API returned. (Direct result from /api/charges/create)
          • extra: The extra info that was included in the server.finishCheckout() call.
        • onPaymentFailed(): This action is called on the processing channel when payment has failed after server.finishCheckout() was called. that is an object with the following properties:
          • bot: The bot that was created for the error.
          • error: The error object.
          • extra: The extra info that was included in the server.finishCheckout() call.
    • Added the ability to send commands directly to users from the server via the remote(command, target) function.
      • For example, calling remote(player.toast("hi!"), { username: 'test' }) will send a toast message with "hi!" to all sessions that the user "test" has open.
      • This is useful for giving the user feedback after finishing the checkout process.
      • Currently, only player commands like player.toast() or player.goToURL() work. Shouts and whispers are not supported yet.
kallyngowdyyeti
published 0.9.32 •

Changelog

Source

V0.9.32

Date: 9/10/2019

Changes:

  • Improvements
    • Changed and condensed the action tags: onDropInContext(), onAnyDropInContext(), onDropInInventory(), onAnyDropInInventory(), onDragOutOfContext(), onAnyDragOutOfContext(), onDragOutOfInventory() and onAnyDragOutOfInventory() to onBotDrop(), onAnyBotDrop(), onBotDrag(), onAnyBotDrag().
    • Setup new 1x7 player inventory layout, works with dynamic changes to width, currently not working with dynamic changes to height.
    • Changed range of aux.context.inventory.height from 0 to 1 to instead be 1 to 10 defining the default number of rows to view in the inventory on page load.
    • Added an API for the AUX Directory.
      • Stores a list of AUXes and their IP addresses to make it easy to discover AUXPlayers that share the same public IP address with you.
      • Controllable with the DIRECTORY_TOKEN_SECRET and DIRECTORY_WEBHOOK environment variables.
      • If the DIRECTORY_TOKEN_SECRET environmenv variable is not specified, then the directory API will not be enabled.
      • Make sure to use a long secure random value for the DIRECTORY_TOKEN_SECRET.
      • The DIRECTORY_WEBHOOK variable specifies the URL that updated entry information should be POSTed to.
        • The message contains a JSON object with the following data:
          • key: The key/hash that the uniquely identifies the AUX that was updated.
          • externalIpAddress: The external (public facing) IP Address that the AUX is using.
          • internalIpAddress: The internal (non-public facing) IP Address that the AUX is using.
      • The following API Endpoints have been added:
        • GET /api/directory
          • Gets a list of AUXPlayers that share the same public IP Address as you.
          • Each entry in the list contains the name of the AUXPlayer and the URL that it can be accessed at.
        • PUT /api/directory
          • Creates / Updates the entry for an AUXPlayer.
          • The request must contain the following values as a JSON object:
            • key: The unique key identifying the AUXPlayer. Recommended to use a hash of the MAC address and hostname.
            • privateIpAddress: The local network IP Address that has been assigned to the AUXPlayer.
            • publicName: The name that can be shown to other users publicly.
            • password: The password that is required to update the record. If this is the first request for the key then the password will be saved such that the record can only be updated in the future when given the same password.
  • Bug Fixes
    • Unbound aux.context.player.rotation.x and aux.context.player.rotation.y from one another to let the user only need to fill in one of the fields for player's initial rotation to work.
kallyngowdyyeti
published 0.9.31 •

Changelog

Source

V0.9.31

Date: 9/05/2019

Changes:

  • Improvements
    • Added in a mod.subtract function to removed certain tags defined by a mod.
    • Added the ending grid position to the drag and drop context actions.
    • Added the new createdBy() function that get the filter of bots that have been created by another bot.
    • Set the drag and drop actions to return more consistant variables.
    • Removed the hamburger menu icon and the menu text from the player's menu.
    • Player's menu will now open then items are added to it from an empty state.
    • Removed unneeded function from the project: getBotsInContext, getBotsInStack, getFilessAtPosition, getNeighboringBots.
  • Bug Fixes
    • Set the bot in the drag and drop actions to no longer return multiple bots.
    • Cleaned up missed text artifact on the loading popup in player.
    • Setting the initial zoom of the player in the context without setting anything for the rotation will no longer rotate the initial player.
    • Resolved issue with wall height not getting set correctly when the context the bot is on is moved vertically.
    • Fix issue with the bot returned from a drag and drop action.
    • Sheet will now remain open when deleting a bot.
    • Fixed onCombine() actions to pass the other bot as that.bot.
kallyngowdyyeti
published 0.9.30 •

Changelog

Source

V0.9.30

Date: 08/28/2019

Changes:

  • Improvements
    • Split the player inventory's resizing bar into two and placed them at the top corners of the inventory.
    • Halved the inventory's gap spacing when on moble for a larger inventory.
    • Improved the label textbox to resize to fix bot that have a high width value.
    • The drop action tags: onDropInContext(), onAnyDropInContext(), onDropInInventory() and onAnyDropInInventory() now return the previous context the bots were in before the drop.
    • Allow the context to set the player's default zoom with the tag aux.context.player.zoom and its rotation with the tags aux.context.player.rotation.x and aux.context.player.rotation.y.
    • Changed the loading popup to have improved readability and removed wanted information from the player's loading popup.
    • Added the ability to show and scan barcodes.
      • Barcodes can be shown via the player.showBarcode(code, format) function.
        • The format parameter accepts the following options:
      • The barcode scanner can be opened via the player.openBarcodeScanner() function.
        • The following barcode types can be scanned:
          • Code 128
          • Code 39
          • Code 93
          • EAN-13
          • EAN-8
          • UPC-A
          • UPC-C
          • Codeabar
        • When a barcode is scanned the onBarcodeScanned() event will be sent containing the barcode that was detected.
        • Also supports onBarcodeScannerOpened() and onBarcodeScannerClosed().
    • Added menus back to AUXPlayer.
    • Added byMod() as an additional way to query bots.
      • Convienent way to query bots by multiple tags at once.
      • Usage:
        • getBots(byMod({ "aux.color": "red", "aux.scale": 2 })) gets all the bots with aux.color set to "red" and aux.scale set to 2.
        • getBots(byMod({ "aux.color": null, "aux.label": "Hi!" })) gets all the bots without an aux.color but with aux.label set to "Hi!".
  • Bug Fixes
    • Resolved issue with new contexts adding an incorrect tag to the sheet.
    • Changed the dynamic aspect ratio to a stable one for the inventory scaling.
kallyngowdyyeti
published 0.9.29 •

Changelog

Source

V0.9.29

Date: 08/23/2019

Changes:

  • Improvements
    • Changed hasFileInInventory() function to hasBotInInventory().
    • Changed onMerge() action tag to onMod().
    • Changed aux._editingFile hidden tag to aux._editingBot.
    • Gave the player inventory an offset from the bottom of the window so that it is floating.
    • Deselecting one of 2 bots in multiselection mode will return the the sheet to single selection mode.
    • Removed the direct aux view for now.
    • Added new feature in sheet where clicking on a bot's tag will select all bots with that tag.
    • Added a code editor.
      • Loads only on desktop/laptop.
      • For the best experience, use with the full size sheet.
      • Features:
        • Syntax highlighting for action tags and formulas.
          • Normal tags don't get syntax highlighting.
        • Syntax checking.
        • Autocomplete for tags.
          • Triggered by typing # or by pressing Ctrl+Space.
        • Autocomplete for formula/action API functions.
          • Triggered by typing or by pressing Ctrl+Space.
        • Find references to API functions across actions/formulas.
          • Trigger by putting the cursor on the tag and press Shift+F12.
        • Find references to tags across actions/formulas.
          • Trigger by putting the cursor on the tag and press Shift+F12.
        • Auto formatting
          • Trigger by typing Alt+Shift+F.
        • Find & Replace
          • Open the find tool by pressing Ctrl+F.
          • Go to replace mode by toggling the arrow on the left side of the find tool.
      • Other notes
        • It is not currently possible to remove formulas using the code editor. Instead, you have to use the small tag input in the table to completely remove formulas.
    • Changed menu button text of: Channel doesn't exist. Do you want to create it? to Channel doesn't exist. Click here to create it. for better user direction.
  • Bug Fixes
    • Resolved issue of the getBot() function not working in the search bar.
    • Allow the use of a channelID made up entirely of numbers.
    • Resolved issue of setTag() not working with multiple files when fed a false or null value to set.
    • Deleting a bot when in multiselection mode will no longer close the sheet.
    • The onPointerExit() function will now execute before an onPointerEnter() function when hovering over multiple bots.
    • Fixed issue in the RemoveTags() function where providing a string with a . in its tag section failed to remove the correct tags.
    • The tag aux.context can now be set to a value type of boolean or number.
    • Increased the timeout time on the Create Channel toast message to give it more processing time so it works more consistently.
    • Fixed inconsistency between actual action tag onAnyDropInContext and what was appearing in the tag dropdown onDropAnyInContext to read correctly, and other similar cases of this.
    • Changed the tag aux.context.inventory.height to work in the context bot's tag list.
kallyngowdyyeti
published 0.9.28 •

Changelog

Source

V0.9.28

Date: 08/16/2019

Changes:

  • Improvements
    • Added the onPointerUp() action tag to fire on button release.
  • Bug Fixes
    • Resolved issue where creating a new tag on one bot, deselecting all bots and attempting to add that same tag to a different bot resulted in a warning.
    • Resolved issue stopping VR from functioning on Occulus Quest.
kallyngowdyyeti
published 0.9.27 •

Changelog

Source

V0.9.27

Date: 08/14/2019

Changes:

  • Improvements
    • Added the context to the that of the onAnyBotClicked() action tag.
    • Added the context to the that of the onKeyDown() and onKeyUp action tags.
    • Removed the trashcan area that appears when dragging a bot.
    • Added the bot and context to the that of the onPointer action tags.
    • Improved the functionality of getBots() and getBot() by adding the ability to search by multiple parameters.
      • Github Issue
      • The following functions have been added:
        • byTag(tag, value): Filters for bots that have the given tag and value.
        • inContext(context): Filters for bots that are in the given context.
        • inStack(bot, context): Filters for bots that are in the same stack as the given bot in the given context.
        • atPosition(context, x, y): Filters for bots that are at the given position in the given context.
        • neighboring(bot, context, direction): Filters for bots that are neighboring the given bot in the given context in the given direction.
        • either(filter1, filter2): Filters for bots that match either of the given filters.
        • not(filter): Filters for bots that do not match the given filter.
      • As a result, it is now possible to use getBots() like this:
        • getBots(byTag("abc", 123), byTag("name", "test"))
        • getBots(not(inContext("hello")))
        • getBots(inContext("hello"), not(inStack(this, "hello")))
        • getBots(atPosition("test", 1, 2))
        • getBots(either(byTag("abc", true), byTag("def", true)))
      • You can still use the old syntax like getBot("name", "bob").
    • Improved the server to update a tag indicating whether a user is active or not.
      • The tag is aux.user.active and is on every player bot.
      • The user frustums have been updated to use this value for detecting if a player is active or not.
    • Removed the depreciated tags: aux.context.surface.grid, aux.context.surface.defaultHeight, aux.input, aux.input.target, and aux.input.placeholder.
    • Made the text editor in sheet go all way to the bottom of the screen when the sheet is toggled to fullscreen mode.
    • Removed the event() function from action scripts.
  • Bug Fixes
    • Destroying a bot will no longer keep a mod of the bot in the selection.
    • Modballs will no longer appear as the file rendered when searching for bots.
    • Added the missing onPointerDown() tag to the tag dropdown list.
    • Fixed an issue that would cause the browser to be refreshed while in the process of Forking an AUX.
    • The player.currentChannel() function will now work in builder.
    • Fixed actions to be able to support using comments at the end of scripts.
    • When clicking off of a search for config it will no longer show a mod being selected briefly.
kallyngowdyyeti
published 0.9.26 •

Changelog

Source

V0.9.26

Date: 08/09/2019

Changes:

  • Improvements
    • Changed the "Subscribe to Channel" text to "Add Channel" in AUXPlayer.
    • Changed the "powered by CasualOS" tagline to "CasualOS ☑️".
    • Added the ability to copy/paste bots directly onto surfaces.
    • Control clicking a bot and attempting to drag it will now result in cloning the bot.
    • Removed the outline bars on the player inventory.
    • Dragging files in AUXPlayer now pulls the selected bot out of the stack.
    • Updating the aux.scale.z or {context}.z values on bots now updates the other bots in the same stack.
    • Improved the sheet to show the filter buttons for every tag namespace.
    • Added the ability to undo destroying a bot from the sheet.
    • Changed the "channel does not exist" message to include a better call to action.
    • Zooming and rotation from a player.tweenTo() call can now be canceled by user input.
  • Bug Fixes
    • The zoom value and orbital values of the player.tweenTo() function have been clamped to their set limits to avoid issues.
    • The inconsistancy of zoom number input between perspective and orthographic cameras with the tweenTo function has been fixed.
    • Fixed the create channel button to refresh the page so that the channel is properly loaded.
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc