Giter VIP home page Giter VIP logo

labtech-script-decode's Introduction

labtech-script-decode

A set of utilities to load, parse, encode and interpolate exported LabTech scripts from XML into JSON and from JSON to XML. This module will run in the browser or on the server.

Installation

npm install --save labtech-script-decode

Usage

Server

const labtech_script = require('labtech-script-decode');

labtech_script.decodeXML(scriptXML).then(scriptJSON => {})

labtech_script.decode(base64string).then()

Browser

Include using Webpack, Browserify, etc, or directly using a script tag:

<script src="/dist/labtech-script-decode.min.js"></script>
<script>
  labtech_script.decodeXML(scriptXML)
    .then(scriptJSON => {
      // scriptJSON
    })
</script>

Documentation

Script functions and their associated documentation for each script function.

Examples

See the test folder for an example decoded script here.

This library is documented with JSDoc for exported object schema.

API

decodeXML(value)

Decode and interpolate an XML string

Arguments

Param Type Description
value String Exported LabTech script

Returns

Promise ⇒ Object<LabTechScript>

decode(value)

Decode and parse a base 64 encoded string such as ScriptData or LicenseData. This function does not interpolate constants such as function names into decoded values.

Arguments

Param Type Description
value String or Array Base 64 encoded

Returns

Promise ⇒ Object<Parsed XML>

encodeXML(object)

Encode and de-interpolate object into an XML string. The input's schema is validated to confirm that the output will produce a valid LabTech script.

Arguments

Param Type Description
object Object<LabTech_Expansion> Packed LabTech script

Returns

Promise ⇒ String<XML>

encode(object)

Encode a JSON object into a base64 encoded string such as for ScriptData or LicenseData.

Arguments

Param Type Description
object object

Returns

Promise ⇒ String

interpolate(scriptData)

Arguments

Param Type Description
scriptData Object<ScriptData> Uninterpolated script data

Returns

Promise ⇒ Object<ScriptData>

toText(scriptJSON)

Arguments

Param Type Description
scriptJSON LabTechScript LabTech Script JSON returned by decodeXML

Constants

A helper object containing a map of ids to

Properties

Property Values
Actions Function location in script
Continues Function enabled or disabled
FunctionFlags Base 10 bitstring determining target for this function
FunctionTypes If or regular function
Functions Function definitions
OsLimits Function OS limits

Schema

LabTechScript : Object
PackedScript : Array.<Object> | Object
ScriptFolder : Array.<Object>
LicenseData : Object
ScriptData : Object
ScriptStepXML : Object
ScriptStep : Object
ScriptFunction : Object
ScriptParam : Object
ScriptTable : Object
FolderTable : Object

LabTechScript : Object

Kind: global typedef Properties

Name Type
LabTech_Expansion
LabTech_Expansion.$
LabTech_Expansion.$.Name
LabTech_Expansion.$.Type
LabTech_Expansion.$.Version
LabTech_Expansion.PackedScript PackedScript

PackedScript : Array.<Object> | Object

Kind: global typedef Properties

Name Type
NewDataSet Object
NewDataSet.Table ScriptTable
PackedScript Array.<PackedScript> | PackedScript
ScriptFolder ScriptFolder

ScriptFolder : Array.<Object>

Kind: global typedef Properties

Name Type
NewDataSet
NewDataSet.Table FolderTable

LicenseData : Object

Kind: global typedef Properties

Name
ExpireDate
RunCounter
ScriptGuid
ScriptVersion
Type

ScriptData : Object

Kind: global typedef Properties

Name Type
ScriptSteps Array.<(ScriptStep|ScriptStepXML)>
Scripts Object
Scripts.ExtraDataFields
Scripts.Globals
Scripts.Parameters
Scripts.ScriptGuid
Scripts.ScriptVersion

ScriptStepXML : Object

Kind: global typedef Properties

Name
Action
Continue
FunctionId
Indentation
OsLimit
Param1
Param2
Param3
Param4
Param5
Sort

ScriptStep : Object

Kind: global typedef Properties

Name Type
Action
Continue
Function ScriptFunction
FunctionId
Indentation
OsLimit
Param1
Param2
Param3
Param4
Param5
Sort

ScriptFunction : Object

Kind: global typedef Properties

Name Type
Description
FunctionFlag
FunctionId
FunctionType
Name
ParamNames Array.<ScriptParam>

ScriptParam : Object

Kind: global typedef Properties

Name Type
Description
ParamName
Value
Values Array.<String>

ScriptTable : Object

Kind: global typedef Properties

Name Type
ComputerScript
EditPermission
FolderId
FunctionScript
LicenseData
LocationScript
MaintenanceScript
Parameters
Permission
ScriptData ScriptData
ScriptFlags
ScriptGuid
ScriptId
ScriptName
ScriptNotes
ScriptVersion

FolderTable : Object

Kind: global typedef Properties

Name
FolderID
GUID
Name
ParentID

labtech-script-decode's People

Contributors

apex-dwhite avatar darrenwhite99 avatar dependabot[bot] avatar k-grube avatar kspooner13 avatar lbegnaud avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.