diff --git a/bsconfig.json b/bsconfig.json index 03512b6a..916dc6c5 100644 --- a/bsconfig.json +++ b/bsconfig.json @@ -24,6 +24,9 @@ { "src": "**/rooibos-roku/**/*.*" }, + { + "src": "**/rooibos-roku/*.*" + }, 1120, 1001, 1128, diff --git a/package-lock.json b/package-lock.json index 89cafe37..deecf8b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "maestro-roku", - "version": "0.60.7", + "version": "0.60.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "maestro-roku", - "version": "0.60.7", + "version": "0.60.8", "license": "MIT", "dependencies": { "bslib": "npm:@rokucommunity/bslib@^0.1.1", @@ -15,7 +15,7 @@ "devDependencies": { "@rokucommunity/bslint": "^0.8.1", "auto-changelog": "^2.2.1", - "brighterscript": "^0.61.3", + "brighterscript": "^0.64.0", "fs-extra": "^7.0.1", "maestro-roku-bsc-plugin": "^0.28.4", "rimraf": "^3.0.2", @@ -43,18 +43,18 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -186,9 +186,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.7.tgz", - "integrity": "sha512-LFmUbFunqmBn26wJZgZPYZPrDR1RwGOu2v79Mgcka1ndO6V0/cwjivPTc4yoK6n9kmw4/ls1r8cLrvh2iMibFA==", + "version": "18.15.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", + "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", "dev": true, "peer": true }, @@ -458,9 +458,9 @@ } }, "node_modules/brighterscript": { - "version": "0.61.3", - "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.61.3.tgz", - "integrity": "sha512-8BDpOSCdmkS/QcTdPTUW/99nCBypuoa/Zz6PZHI6OiVylqTBidtrGI7lBZotqY6yvQ3KJl24thhLHK5XuIT/6w==", + "version": "0.64.1", + "resolved": "https://registry.npmjs.org/brighterscript/-/brighterscript-0.64.1.tgz", + "integrity": "sha512-AwB9HCIRG1BnHaQ8+f5gGQe5L0LksZ4cJivOuS53GdW64LLpESVg0y5w8uaZuZ7czri5fMZD65kIQwH+bt4ywA==", "dev": true, "dependencies": { "@rokucommunity/bslib": "^0.1.1", @@ -484,14 +484,14 @@ "p-settle": "^2.1.0", "parse-ms": "^2.1.0", "require-relative": "^0.8.7", - "roku-deploy": "^3.9.3", + "roku-deploy": "^3.10.1", "serialize-error": "^7.0.1", "source-map": "^0.7.4", "vscode-languageserver": "7.0.0", "vscode-languageserver-protocol": "3.16.0", "vscode-languageserver-textdocument": "^1.0.1", "vscode-uri": "^2.1.1", - "xml2js": "^0.4.19", + "xml2js": "^0.5.0", "yargs": "^16.2.0" }, "bin": { @@ -2062,9 +2062,9 @@ } }, "node_modules/roku-deploy": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/roku-deploy/-/roku-deploy-3.10.0.tgz", - "integrity": "sha512-qifRe8xmX0g1bBJoin6wC4IYiLoFGU4PU9CRGdsV25Sv35TPFuz1FLBMIBEieBg8pHoATUa+jyPfs7upHxq9Yw==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/roku-deploy/-/roku-deploy-3.10.1.tgz", + "integrity": "sha512-utPNny0a2m/N0AQT6zyVLXtrr81KR5QeJqPUbc59VBcqGM+WIi7rQ9hBLmp5dFqIo/7JVKQYFs+nFGebOA6F7w==", "dev": true, "dependencies": { "chalk": "^2.4.2", @@ -2080,7 +2080,7 @@ "parse-ms": "^2.1.0", "request": "^2.88.0", "temp-dir": "^2.0.0", - "xml2js": "^0.4.23" + "xml2js": "^0.5.0" }, "bin": { "roku-deploy": "dist/cli.js" @@ -2102,9 +2102,9 @@ } }, "node_modules/roku-log-bsc-plugin/node_modules/@types/node": { - "version": "14.18.40", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.40.tgz", - "integrity": "sha512-pGteXO/JQX7wPxGR8lyT+doqjMa7XvlVowwrDwLfX92k5SdLkk4cwC7CYSLBxrenw/R5oQwKioVIak7ZgplM3g==", + "version": "14.18.42", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.42.tgz", + "integrity": "sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg==", "dev": true }, "node_modules/roku-log-bsc-plugin/node_modules/vscode-jsonrpc": { @@ -2411,6 +2411,19 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/ropm/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/ropm/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -2489,9 +2502,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -2970,9 +2983,9 @@ "dev": true }, "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", "dev": true, "dependencies": { "sax": ">=0.6.0", diff --git a/package.json b/package.json index c6d2da1b..ec02d747 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "devDependencies": { "@rokucommunity/bslint": "^0.8.1", "auto-changelog": "^2.2.1", - "brighterscript": "^0.61.3", + "brighterscript": "^0.64.0", "fs-extra": "^7.0.1", "maestro-roku-bsc-plugin": "^0.28.4", "rimraf": "^3.0.2", diff --git a/src-ml-test-app/source/models/Item.bs b/src-ml-test-app/source/models/Item.bs index e195abd5..2bef9de4 100644 --- a/src-ml-test-app/source/models/Item.bs +++ b/src-ml-test-app/source/models/Item.bs @@ -1,22 +1,11 @@ import "pkg:/source/core/Utils.bs" namespace models - ' /** - ' * @module nba.content.models.Item - ' * @description contains info pertinent to items, such as videos, etc. - ' */ @node("Item", "ContentNode") class Item public json as mc.types.assocarray - ' /** - ' * @member type - ' * @memberof module:nba.models.Item - ' * @instance - ' * @description Describes the type of the item: - ' * types are (video|other|TBD) - ' */ public version = 0 public type = "" public isSerializable = true diff --git a/src/source/core/MIOC.bs b/src/source/core/MIOC.bs index 9e32402c..6c35867a 100644 --- a/src/source/core/MIOC.bs +++ b/src/source/core/MIOC.bs @@ -254,7 +254,7 @@ namespace mioc function isValidType(instance as dynamic) instanceType = type(instance) - if instanceType = "roSGNode" or instanceType = "roAssociativeArray" or instanceType = "String" or instanceType = "roArray" or instanceType = "Integer" or instanceType = "Float" or instance = invalid + if instanceType = "roSGNode" or instanceType = "roAssociativeArray" or instanceType = "String" or instanceType = "Integer" or instanceType = "Float" or instance = invalid or GetInterface(instance, "ifString") <> invalid or GetInterface(instance, "ifBoolean") <> invalid or GetInterface(instance, "ifInt") <> invalid or GetInterface(instance, "ifDouble") <> invalid or GetInterface(instance, "ifAssociativeArray") <> invalid or GetInterface(instance, "ifFloat") <> invalid or GetInterface(instance, "ifArray") <> invalid return true end if return false diff --git a/src/source/core/MIOC.spec.bs b/src/source/core/MIOC.spec.bs index d8fa4dae..0c8672cd 100644 --- a/src/source/core/MIOC.spec.bs +++ b/src/source/core/MIOC.spec.bs @@ -191,6 +191,14 @@ namespace tests m.assertEqual(mioc.getInstance("v2.sub.sub2", "b"), "b") end function + @it("supports simple values") + function _() + m.assertTrue(mioc.setInstance("v1", "en")) + m.assertEqual(mioc.getInstance("v1"), "en") + m.assertEqual(mioc.getInstance("v1", invalid, ""), "en") + m.assertEqual(mioc.getInstance("v2", invalid, "b"), "b") + end function + end class end namespace diff --git a/src/source/core/Selection.bs b/src/source/core/Selection.bs index 29435dc8..03a01b14 100644 --- a/src/source/core/Selection.bs +++ b/src/source/core/Selection.bs @@ -82,5 +82,12 @@ namespace mc result: result }) end function + + function setCompletionState(state as string) + if m.itemCompletionState = "pending" + m.itemCompletionState = state + end if + end function + end class end namespace diff --git a/src/source/view/BaseView.bs b/src/source/view/BaseView.bs index 66278383..ac481e99 100644 --- a/src/source/view/BaseView.bs +++ b/src/source/view/BaseView.bs @@ -76,9 +76,9 @@ namespace mv ' for a field ' Views that create their child views from json, will automatically have a _dataMappedControlIds property, which tells this function which controls to apply the data source to. ' Alternately, a _controls_ array can be used to apply the datamap to the passed in array of controls - protected function applyDataMapToControls(dataSource = invalid as dynamic, controls = invalid as mc.types.array) as boolean - if controls <> invalid - for each control in controls + protected function applyDataMapToControls(dataSource = invalid as dynamic, targetControls = invalid as mc.types.array) as boolean + if targetControls <> invalid + for each control in targetControls mv.applyDataMap(control, dataSource) end for return true @@ -107,7 +107,7 @@ namespace mv timeNow = UpTime(0) ' ? "key " ; key ; " P " ; press ; " " ; abs(timeNow - m.lastPressTime) ' if abs(timeNow - m.lastPressTime) < 0.35 and press - ' ? " skipping rapid key" + ' ? " skipping rapid key" ' m.lastPressTime = timeNow ' return true ' end if diff --git a/src/source/view/DialogUtils.bs b/src/source/view/DialogUtils.bs index 0cb20e39..32597d39 100644 --- a/src/source/view/DialogUtils.bs +++ b/src/source/view/DialogUtils.bs @@ -12,7 +12,6 @@ namespace mv '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public dialog - ' private date = new nba.models.Date() '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '++ Private Fields diff --git a/src/source/view/KeyboardDialogUtils.bs b/src/source/view/KeyboardDialogUtils.bs index 8bb78686..3d01c215 100644 --- a/src/source/view/KeyboardDialogUtils.bs +++ b/src/source/view/KeyboardDialogUtils.bs @@ -12,7 +12,6 @@ namespace mv '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ public dialog - ' private date = new nba.models.Date() '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ '++ Private Fields