From d985c33de36dded94276b549c9c05e7dcf525337 Mon Sep 17 00:00:00 2001 From: Manuel Saelices Date: Fri, 28 Jun 2019 17:23:39 +0200 Subject: [PATCH 1/4] chore: require relative path within tns-core-modules (#7367) --- .../application/application-common.ts | 2 +- tns-core-modules/bundle-entry-points.ts | 80 +++++++++---------- tns-core-modules/file-system/file-system.ts | 2 +- tns-core-modules/globals/globals.ts | 18 ++--- .../http/http-request/http-request-common.ts | 2 +- .../http/http-request/http-request.android.ts | 6 +- .../http/http-request/http-request.ios.ts | 4 +- .../component-builder/component-builder.ts | 2 +- .../ui/core/view-base/view-base.ts | 2 +- tns-core-modules/ui/core/view/view-common.ts | 2 +- tns-core-modules/ui/dialogs/dialogs-common.ts | 8 +- tns-core-modules/ui/enums/enums.ts | 2 +- tns-core-modules/ui/frame/frame.android.ts | 4 +- tns-core-modules/ui/frame/frame.d.ts | 2 +- .../ui/image-cache/image-cache.ios.ts | 2 +- tns-core-modules/ui/styling/style-scope.ts | 2 +- 16 files changed, 70 insertions(+), 70 deletions(-) diff --git a/tns-core-modules/application/application-common.ts b/tns-core-modules/application/application-common.ts index e0434eb67..0ca6c76a1 100644 --- a/tns-core-modules/application/application-common.ts +++ b/tns-core-modules/application/application-common.ts @@ -1,5 +1,5 @@ // Require globals first so that snapshot takes __extends function. -require("globals"); +require("../globals"); import { Observable, EventData } from "../data/observable"; import { View } from "../ui/core/view"; diff --git a/tns-core-modules/bundle-entry-points.ts b/tns-core-modules/bundle-entry-points.ts index df94028bf..372b75b16 100644 --- a/tns-core-modules/bundle-entry-points.ts +++ b/tns-core-modules/bundle-entry-points.ts @@ -4,44 +4,44 @@ if (global.TNS_WEBPACK) { // Register "dynamically" loaded module that need to be resolved by the // XML/component builders. - global.registerModule("text/formatted-string", () => require("text/formatted-string")); - global.registerModule("text/span", () => require("text/span")); - global.registerModule("ui/action-bar", () => require("ui/action-bar")); - global.registerModule("ui/activity-indicator", () => require("ui/activity-indicator")); - global.registerModule("ui/border", () => require("ui/border")); - global.registerModule("ui/bottom-navigation", () => require("ui/bottom-navigation")); - global.registerModule("ui/button", () => require("ui/button")); - global.registerModule("ui/content-view", () => require("ui/content-view")); - global.registerModule("ui/date-picker", () => require("ui/date-picker")); - global.registerModule("ui/frame", () => require("ui/frame")); - global.registerModule("ui/html-view", () => require("ui/html-view")); - global.registerModule("ui/image", () => require("ui/image")); - global.registerModule("ui/label", () => require("ui/label")); - global.registerModule("ui/layouts/absolute-layout", () => require("ui/layouts/absolute-layout")); - global.registerModule("ui/layouts/dock-layout", () => require("ui/layouts/dock-layout")); - global.registerModule("ui/layouts/grid-layout", () => require("ui/layouts/grid-layout")); - global.registerModule("ui/layouts/stack-layout", () => require("ui/layouts/stack-layout")); - global.registerModule("ui/layouts/flexbox-layout", () => require("ui/layouts/flexbox-layout")); - global.registerModule("ui/layouts/wrap-layout", () => require("ui/layouts/wrap-layout")); - global.registerModule("ui/list-picker", () => require("ui/list-picker")); - global.registerModule("ui/page", () => require("ui/page")); - global.registerModule("ui/placeholder", () => require("ui/placeholder")); - global.registerModule("ui/progress", () => require("ui/progress")); - global.registerModule("ui/proxy-view-container", () => require("ui/proxy-view-container")); - global.registerModule("ui/repeater", () => require("ui/repeater")); - global.registerModule("ui/scroll-view", () => require("ui/scroll-view")); - global.registerModule("ui/search-bar", () => require("ui/search-bar")); - global.registerModule("ui/segmented-bar", () => require("ui/segmented-bar")); - global.registerModule("ui/slider", () => require("ui/slider")); - global.registerModule("ui/switch", () => require("ui/switch")); - global.registerModule("ui/tab-view", () => require("ui/tab-view")); - global.registerModule("ui/tab-navigation-base/tab-strip", () => require("ui/tab-navigation-base/tab-strip")); - global.registerModule("ui/tab-navigation-base/tab-strip-item", () => require("ui/tab-navigation-base/tab-strip-item")); - global.registerModule("ui/tab-navigation-base/tab-content-item", () => require("ui/tab-navigation-base/tab-content-item")); - global.registerModule("ui/tabs", () => require("ui/tabs")); - global.registerModule("ui/web-view", () => require("ui/web-view")); - global.registerModule("ui/text-field", () => require("ui/text-field")); - global.registerModule("ui/text-view", () => require("ui/text-view")); - global.registerModule("ui/time-picker", () => require("ui/time-picker")); - global.registerModule("ui/list-view", () => require("ui/list-view")); + global.registerModule("text/formatted-string", () => require("./text/formatted-string")); + global.registerModule("text/span", () => require("./text/span")); + global.registerModule("ui/action-bar", () => require("./ui/action-bar")); + global.registerModule("ui/activity-indicator", () => require("./ui/activity-indicator")); + global.registerModule("ui/border", () => require("./ui/border")); + global.registerModule("ui/bottom-navigation", () => require("./ui/bottom-navigation")); + global.registerModule("ui/button", () => require("./ui/button")); + global.registerModule("ui/content-view", () => require("./ui/content-view")); + global.registerModule("ui/date-picker", () => require("./ui/date-picker")); + global.registerModule("ui/frame", () => require("./ui/frame")); + global.registerModule("ui/html-view", () => require("./ui/html-view")); + global.registerModule("ui/image", () => require("./ui/image")); + global.registerModule("ui/label", () => require("./ui/label")); + global.registerModule("ui/layouts/absolute-layout", () => require("./ui/layouts/absolute-layout")); + global.registerModule("ui/layouts/dock-layout", () => require("./ui/layouts/dock-layout")); + global.registerModule("ui/layouts/grid-layout", () => require("./ui/layouts/grid-layout")); + global.registerModule("ui/layouts/stack-layout", () => require("./ui/layouts/stack-layout")); + global.registerModule("ui/layouts/flexbox-layout", () => require("./ui/layouts/flexbox-layout")); + global.registerModule("ui/layouts/wrap-layout", () => require("./ui/layouts/wrap-layout")); + global.registerModule("ui/list-picker", () => require("./ui/list-picker")); + global.registerModule("ui/page", () => require("./ui/page")); + global.registerModule("ui/placeholder", () => require("./ui/placeholder")); + global.registerModule("ui/progress", () => require("./ui/progress")); + global.registerModule("ui/proxy-view-container", () => require("./ui/proxy-view-container")); + global.registerModule("ui/repeater", () => require("./ui/repeater")); + global.registerModule("ui/scroll-view", () => require("./ui/scroll-view")); + global.registerModule("ui/search-bar", () => require("./ui/search-bar")); + global.registerModule("ui/segmented-bar", () => require("./ui/segmented-bar")); + global.registerModule("ui/slider", () => require("./ui/slider")); + global.registerModule("ui/switch", () => require("./ui/switch")); + global.registerModule("ui/tab-view", () => require("./ui/tab-view")); + global.registerModule("ui/tab-navigation-base/tab-strip", () => require("./ui/tab-navigation-base/tab-strip")); + global.registerModule("ui/tab-navigation-base/tab-strip-item", () => require("./ui/tab-navigation-base/tab-strip-item")); + global.registerModule("ui/tab-navigation-base/tab-content-item", () => require("./ui/tab-navigation-base/tab-content-item")); + global.registerModule("ui/tabs", () => require("./ui/tabs")); + global.registerModule("ui/web-view", () => require("./ui/web-view")); + global.registerModule("ui/text-field", () => require("./ui/text-field")); + global.registerModule("ui/text-view", () => require("./ui/text-view")); + global.registerModule("ui/time-picker", () => require("./ui/time-picker")); + global.registerModule("ui/list-view", () => require("./ui/list-view")); } diff --git a/tns-core-modules/file-system/file-system.ts b/tns-core-modules/file-system/file-system.ts index 183003f2c..aa1209716 100644 --- a/tns-core-modules/file-system/file-system.ts +++ b/tns-core-modules/file-system/file-system.ts @@ -17,7 +17,7 @@ function getFileAccess(): FileSystemAccess { let platform: typeof platformModule; function ensurePlatform() { if (!platform) { - platform = require("platform"); + platform = require("../platform"); } } diff --git a/tns-core-modules/globals/globals.ts b/tns-core-modules/globals/globals.ts index 1725e4c44..af2f62197 100644 --- a/tns-core-modules/globals/globals.ts +++ b/tns-core-modules/globals/globals.ts @@ -129,10 +129,10 @@ global.zonedCallback = function (callback: Function): Function { } }; -global.registerModule("timer", () => require("timer")); -global.registerModule("ui/dialogs", () => require("ui/dialogs")); -global.registerModule("xhr", () => require("xhr")); -global.registerModule("fetch", () => require("fetch")); +global.registerModule("timer", () => require("../timer")); +global.registerModule("ui/dialogs", () => require("../ui/dialogs")); +global.registerModule("xhr", () => require("../xhr")); +global.registerModule("fetch", () => require("../fetch")); (global).System = { import(path) { @@ -167,10 +167,10 @@ export function install() { if ((global).__snapshot || (global).__snapshotEnabled) { if (!snapshotGlobals) { // require in snapshot mode is cheap - const timer: typeof timerModule = require("timer"); - const dialogs: typeof dialogsModule = require("ui/dialogs"); - const xhr = require("xhr"); - const fetch = require("fetch"); + const timer: typeof timerModule = require("../timer"); + const dialogs: typeof dialogsModule = require("../ui/dialogs"); + const xhr = require("../xhr"); + const fetch = require("../fetch"); snapshotGlobals = snapshotGlobals || { setTimeout: timer.setTimeout, @@ -193,7 +193,7 @@ export function install() { Response: fetch.Response, }; } - const consoleModule = require("console").Console; + const consoleModule = require("../console").Console; // Object.assign call will fire an error when trying to write to a read-only property of an object, such as 'console' global.console = global.console || new consoleModule(); Object.assign(global, snapshotGlobals); diff --git a/tns-core-modules/http/http-request/http-request-common.ts b/tns-core-modules/http/http-request/http-request-common.ts index aff2f4ceb..15df5fc09 100644 --- a/tns-core-modules/http/http-request/http-request-common.ts +++ b/tns-core-modules/http/http-request/http-request-common.ts @@ -1,7 +1,7 @@ import * as fsModule from "../../file-system"; export function getFilenameFromUrl(url: string) { - const fs: typeof fsModule = require("file-system"); + const fs: typeof fsModule = require("../../file-system"); const slashPos = url.lastIndexOf("/") + 1; const questionMarkPos = url.lastIndexOf("?"); diff --git a/tns-core-modules/http/http-request/http-request.android.ts b/tns-core-modules/http/http-request/http-request.android.ts index 58969f60f..8800046c5 100644 --- a/tns-core-modules/http/http-request/http-request.android.ts +++ b/tns-core-modules/http/http-request/http-request.android.ts @@ -27,21 +27,21 @@ const pendingRequests = {}; let imageSource: typeof imageSourceModule; function ensureImageSource() { if (!imageSource) { - imageSource = require("image-source"); + imageSource = require("../../image-source"); } } let platform: typeof platformModule; function ensurePlatform() { if (!platform) { - platform = require("platform"); + platform = require("../../platform"); } } let fs: typeof fsModule; function ensureFileSystem() { if (!fs) { - fs = require("file-system"); + fs = require("../../file-system"); } } diff --git a/tns-core-modules/http/http-request/http-request.ios.ts b/tns-core-modules/http/http-request/http-request.ios.ts index cff881b1d..f54d1c496 100644 --- a/tns-core-modules/http/http-request/http-request.ios.ts +++ b/tns-core-modules/http/http-request/http-request.ios.ts @@ -56,14 +56,14 @@ function ensureSessionNotFollowingRedirects() { let imageSource: typeof imageSourceModule; function ensureImageSource() { if (!imageSource) { - imageSource = require("image-source"); + imageSource = require("../../image-source"); } } let fs: typeof fsModule; function ensureFileSystem() { if (!fs) { - fs = require("file-system"); + fs = require("../../file-system"); } } diff --git a/tns-core-modules/ui/builder/component-builder/component-builder.ts b/tns-core-modules/ui/builder/component-builder/component-builder.ts index 7e04c16d5..89987f393 100644 --- a/tns-core-modules/ui/builder/component-builder/component-builder.ts +++ b/tns-core-modules/ui/builder/component-builder/component-builder.ts @@ -51,7 +51,7 @@ const createComponentInstance = profile("createComponentInstance", (elementName: // Create instance of the component. instance = new instanceType(); } catch (ex) { - const debug: typeof debugModule = require("utils/debug"); + const debug: typeof debugModule = require("../../../utils/debug"); throw new debug.ScopeError(ex, "Module '" + resolvedModuleName + "' not found for element '" + (namespace ? namespace + ":" : "") + elementName + "'."); } diff --git a/tns-core-modules/ui/core/view-base/view-base.ts b/tns-core-modules/ui/core/view-base/view-base.ts index c85cce7d3..a282768bc 100644 --- a/tns-core-modules/ui/core/view-base/view-base.ts +++ b/tns-core-modules/ui/core/view-base/view-base.ts @@ -37,7 +37,7 @@ function ensuredomNodeModule(): void { let styleScopeModule: typeof ssm; function ensureStyleScopeModule() { if (!styleScopeModule) { - styleScopeModule = require("ui/styling/style-scope"); + styleScopeModule = require("../../styling/style-scope"); } } diff --git a/tns-core-modules/ui/core/view/view-common.ts b/tns-core-modules/ui/core/view/view-common.ts index 791a8c4af..6eb43e383 100644 --- a/tns-core-modules/ui/core/view/view-common.ts +++ b/tns-core-modules/ui/core/view/view-common.ts @@ -34,7 +34,7 @@ import * as am from "../../animation"; let animationModule: typeof am; function ensureAnimationModule() { if (!animationModule) { - animationModule = require("ui/animation"); + animationModule = require("../../animation"); } } diff --git a/tns-core-modules/ui/dialogs/dialogs-common.ts b/tns-core-modules/ui/dialogs/dialogs-common.ts index e80159127..58cd326e9 100644 --- a/tns-core-modules/ui/dialogs/dialogs-common.ts +++ b/tns-core-modules/ui/dialogs/dialogs-common.ts @@ -78,7 +78,7 @@ export module capitalizationType { let frame: typeof frameModule; export function getCurrentPage(): Page { if (!frame) { - frame = require("ui/frame"); + frame = require("../frame"); } let topmostFrame = frame.topmost(); @@ -108,7 +108,7 @@ let textField: View; export function getButtonColors(): { color: Color, backgroundColor: Color } { if (!button) { - const Button = require("ui/button").Button; + const Button = require("../button").Button; button = new Button; if (isIOS) { button._setupUI({}); @@ -127,7 +127,7 @@ export function getButtonColors(): { color: Color, backgroundColor: Color } { export function getLabelColor(): Color { if (!label) { - const Label = require("ui/label").Label; + const Label = require("../label").Label; label = new Label; if (isIOS) { label._setupUI({}); @@ -144,7 +144,7 @@ export function getLabelColor(): Color { export function getTextFieldColor(): Color { if (!textField) { - const TextField = require("ui/text-field").TextField; + const TextField = require("../text-field").TextField; textField = new TextField(); if (isIOS) { textField._setupUI({}); diff --git a/tns-core-modules/ui/enums/enums.ts b/tns-core-modules/ui/enums/enums.ts index a82824e96..a39c8295f 100644 --- a/tns-core-modules/ui/enums/enums.ts +++ b/tns-core-modules/ui/enums/enums.ts @@ -177,7 +177,7 @@ export module AnimationCurve { export const linear = "linear"; export const spring = "spring"; export function cubicBezier(x1: number, y1: number, x2: number, y2: number): Object { - animation = animation || require("ui/animation"); + animation = animation || require("../animation"); return new animation.CubicBezierAnimationCurve(x1, y1 , x2, y2); } diff --git a/tns-core-modules/ui/frame/frame.android.ts b/tns-core-modules/ui/frame/frame.android.ts index c697cd87a..f94a91282 100644 --- a/tns-core-modules/ui/frame/frame.android.ts +++ b/tns-core-modules/ui/frame/frame.android.ts @@ -46,7 +46,7 @@ let fragmentId = -1; export let moduleLoaded: boolean; if (global && global.__inspector) { - const devtools = require("tns-core-modules/debugger/devtools-elements"); + const devtools = require("../../debugger/devtools-elements"); devtools.attachDOMInspectorEventCallbacks(global.__inspector); devtools.attachDOMInspectorCommandCallbacks(global.__inspector); } @@ -754,7 +754,7 @@ function ensureFragmentClass() { } // this require will apply the FragmentClass implementation - require("ui/frame/fragment"); + require("./fragment"); if (!fragmentClass) { throw new Error("Failed to initialize the extended androidx.fragment.app.Fragment class"); diff --git a/tns-core-modules/ui/frame/frame.d.ts b/tns-core-modules/ui/frame/frame.d.ts index 5d5eaf324..14a642904 100644 --- a/tns-core-modules/ui/frame/frame.d.ts +++ b/tns-core-modules/ui/frame/frame.d.ts @@ -30,7 +30,7 @@ export class Frame extends View { * This method will require the module and will check for a Page property in the exports of the module. * @param pageModuleName The name of the module to require starting from the application root. * For example if you want to navigate to page called "myPage.js" in a folder called "subFolder" and your root folder is "app" you can call navigate method like this: - * const frames = require("ui/frame"); + * const frames = require("tns-core-modules/ui/frame"); * frames.topmost().navigate("app/subFolder/myPage"); */ navigate(pageModuleName: string); diff --git a/tns-core-modules/ui/image-cache/image-cache.ios.ts b/tns-core-modules/ui/image-cache/image-cache.ios.ts index 595cc0657..27b61d4e4 100644 --- a/tns-core-modules/ui/image-cache/image-cache.ios.ts +++ b/tns-core-modules/ui/image-cache/image-cache.ios.ts @@ -8,7 +8,7 @@ import * as utils from "../../utils/utils"; let httpRequest: typeof httpRequestModule; function ensureHttpRequest() { if (!httpRequest) { - httpRequest = require("http/http-request"); + httpRequest = require("../../http/http-request"); } } diff --git a/tns-core-modules/ui/styling/style-scope.ts b/tns-core-modules/ui/styling/style-scope.ts index d2995f6af..cecab4e2b 100644 --- a/tns-core-modules/ui/styling/style-scope.ts +++ b/tns-core-modules/ui/styling/style-scope.ts @@ -35,7 +35,7 @@ import * as kam from "../animation/keyframe-animation"; let keyframeAnimationModule: typeof kam; function ensureKeyframeAnimationModule() { if (!keyframeAnimationModule) { - keyframeAnimationModule = require("ui/animation/keyframe-animation"); + keyframeAnimationModule = require("../animation/keyframe-animation"); } } From 250eb31c6ed69a98b713ac8dd0546d3d5a47ae47 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Fri, 28 Jun 2019 19:01:59 +0300 Subject: [PATCH 2/4] chore: bump to 6.1.0 (#7422) --- tns-core-modules-widgets/package.json | 2 +- tns-core-modules/package.json | 2 +- tns-platform-declarations/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tns-core-modules-widgets/package.json b/tns-core-modules-widgets/package.json index 46bab1160..57c5a34bf 100644 --- a/tns-core-modules-widgets/package.json +++ b/tns-core-modules-widgets/package.json @@ -1,6 +1,6 @@ { "name": "tns-core-modules-widgets", - "version": "6.0.0", + "version": "6.1.0", "description": "Native widgets used in the NativeScript framework.", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" diff --git a/tns-core-modules/package.json b/tns-core-modules/package.json index 76b70b72f..91325f896 100644 --- a/tns-core-modules/package.json +++ b/tns-core-modules/package.json @@ -1,7 +1,7 @@ { "name": "tns-core-modules", "description": "Telerik NativeScript Core Modules", - "version": "6.0.0", + "version": "6.1.0", "homepage": "https://www.nativescript.org", "repository": { "type": "git", diff --git a/tns-platform-declarations/package.json b/tns-platform-declarations/package.json index 5ee16ea26..920aef4da 100644 --- a/tns-platform-declarations/package.json +++ b/tns-platform-declarations/package.json @@ -1,6 +1,6 @@ { "name": "tns-platform-declarations", - "version": "6.0.0", + "version": "6.1.0", "description": "Platform-specific TypeScript declarations for NativeScript for accessing native objects", "main": "", "scripts": { From b8659e67c3d7b5f9ab6335f3f8eda46ba64a0ba7 Mon Sep 17 00:00:00 2001 From: Eduardo Speroni Date: Wed, 3 Jul 2019 05:52:52 -0300 Subject: [PATCH 3/4] fix: full Unicode support in xml (#7428) --- .../app/xml-parser-tests/xml-parser-tests.ts | 26 +++++++++++++++++++ tns-core-modules/js-libs/easysax/easysax.js | 4 +-- tns-core-modules/xml/xml.ts | 6 ++--- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/tests/app/xml-parser-tests/xml-parser-tests.ts b/tests/app/xml-parser-tests/xml-parser-tests.ts index 06b07aec9..7ea0f631f 100644 --- a/tests/app/xml-parser-tests/xml-parser-tests.ts +++ b/tests/app/xml-parser-tests/xml-parser-tests.ts @@ -54,6 +54,32 @@ export var test_XmlParser_EntityReferencesInAttributeValuesAreDecoded = function TKUnit.assert(data === "<>\"&'", "Expected result: <>\"&'; Actual result: " + data + ";"); }; +export var test_XmlParser_UnicodeEntitiesAreDecoded = function () { + var data; + var xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) { + switch (event.eventType) { + case xmlModule.ParserEventType.Text: + data = event.data; + break; + } + }); + xmlParser.parse("🤣✓"); + TKUnit.assert(data === "\uD83E\uDD23\u2713", "Expected result: \uD83E\uDD23\u2713; Actual result: " + data + ";"); +}; + +export var test_XmlParser_UnicodeEntitiesInAttributeValuesAreDecoded = function () { + var data; + var xmlParser = new xmlModule.XmlParser(function (event: xmlModule.ParserEvent) { + switch (event.eventType) { + case xmlModule.ParserEventType.StartElement: + data = event.attributes["text"]; + break; + } + }); + xmlParser.parse("