diff --git a/ibm-mobilefirst/ibm-mobilefirst-tests.ts b/ibm-mobilefirst/ibm-mobilefirst-tests.ts new file mode 100644 index 000000000..c45b630d7 --- /dev/null +++ b/ibm-mobilefirst/ibm-mobilefirst-tests.ts @@ -0,0 +1,169 @@ +/// +/// +// Tests + +// Test WL.Client +WL.Client.connect({ + onSuccess: function (response: WL.ResponseBase) { + var title: string = response.responseJSON["title"]; + console.log(response.status + ' ' + title); + }, + onFailure: function (response: WL.FailureResponse) { + }, + timeout: 30 +}); + +WL.Client.invokeProcedure({ adapter: "", procedure: ""}).then(function(response) { + response.responseJSON; +}, function(response) { + response.status; +}); + +// Test WL.Device +WL.Device.getNetworkInfo(function(networkInfo) { + var addrs = networkInfo.Ipv4Addresses; + addrs[0].wifiAddress; +}) + +// Test user delete certificate +WL.UserAuth.deleteCertificate("entity").then(function() { + console.log('WL.UserAuth.deleteCertificate success'); +}, function(error: string) { + console.log('WL.UserAuth.deleteCertificate failure ' + error); +}); + +// Test Auhorization Manager +var xhr = new XMLHttpRequest(); +WLAuthorizationManager.addCachedAuthorizationHeader(xhr).always( + function(response: WLAuthorizationManager.RequestObject) { + // success or failure flow + } +); +WLAuthorizationManager.getAppIdentity().then(function(data) { + // success flow with application identity +}, function(error: string) { + // failure flow with error +}); +WLAuthorizationManager.getCachedAuthorizationHeader().then(function(response) { + // success flow +}, function(error) { + // error flow +}); +WLAuthorizationManager.getDeviceIdentity().then(function(data) { + // success flow with device identity +}, function(error) { + // failure flow with error +}); + +// Test WL.JSONStore +var arr: any[]; +arr = WL.JSONStore.QueryPart().between('gpa', [3.0, 4.0]); + //arr = [{$between: [{ gpa : [3.0, 4.0] }]}] +arr = WL.JSONStore.QueryPart().equal('age', 35); + //arr = [{$equal: [{ age : 35 }]}] +arr = WL.JSONStore.QueryPart().greaterOrEqualThan('age', 40); + //arr = [{$greaterOrEqualThan: [{ age : 40 }]}] +arr = WL.JSONStore.QueryPart().greaterThan('age', 40); + //arr = [{$greaterThan: [{ age : 40 }]}] +arr = WL.JSONStore.QueryPart().inside('gpa', [3.0, 4.0]); + //arr = [{$inside: [{ gpa : [3.0, 4.0] }]}] +arr = WL.JSONStore.QueryPart().leftLike('name', 'ca'); + //arr = [{$leftLike: [{ name : 'ca' }]}] +arr = WL.JSONStore.QueryPart().lessOrEqualThan('age', 40); + //arr = [{$lessOrEqualThan: [{ age : 40 }]}] +arr = WL.JSONStore.QueryPart().lessThan('age', 40); + //arr = [{$lessThan: [{ age : 40 }]}] +arr = WL.JSONStore.QueryPart().like('name', 'ca'); + //arr = [{$like: [{ name : 'ca' }]}] +arr = WL.JSONStore.QueryPart().notBetween('gpa', [3.0, 4.0]); + //arr = [{$notBetween: [{ gpa : [3.0, 4.0] }]}] +arr = WL.JSONStore.QueryPart().notEqual('name', 'ca'); + //arr = [{$notEqual: [{ name : 'ca' }]}] + +// Test WL.Logger +WL.Logger.config(); +var logger = WL.Logger.create({pkg: 'myapp'}); +logger.debug('Hello world'); +logger.error('Hello world'); +logger.fatal('Hello world'); +logger.info('Hello world'); +logger.trace('Hello world'); +logger.warn('Hello world'); +WL.Logger.ctx({pkg: 'hello'}).debug('Hello world'); //Package name context passed +WL.Logger.debug('Hello world'); +WL.Logger.error('Hello world'); +WL.Logger.fatal('Hello world'); +WL.Logger.info('Hello world'); +WL.Logger.log('Hello world'); +WL.Logger.trace('Hello world'); +WL.Logger.warn('Hello world'); +WL.Logger.metadata( { hi : 'world' } ).info('hello'); +WL.Logger.setNativeOptions({ + maxFileSize : 100000, + level : 'debug', + capture : true, + filters : { jsonstore : 'debug' } + }); +WL.Logger.status().then(function (state) { + //{ enabled : true, stringify: true, filters : {}, + // level : 'info', pkg : '', tag: {level: false, pkg: true} } +}).fail(function (errMsg) { + //errMsg = error message +}); + +// Test WL.SecurityUtils +WL.SecurityUtils.base64Encode('input string').then(function(result: string) { + console.log('Base64 Encoded: ' + result); +}, function() { + console.log('An error occurred'); +}); + +// Test WL.SimpleDialog +WL.SimpleDialog.show( + 'My Title', 'My Text', [{ + text: 'First Button', + handler: function() { + WL.Logger.debug("First button pressed"); + } + }]); + +// Test WL.TabBar +// iOS +var creditTab = WL.TabBar.addItem("CREDIT", function() { + alert("the CREDIT tab was selected!"); +}, "Visa", { + image:"images/credit.png", + badge: "2" +}); +creditTab.setEnabled(false); +creditTab.updateBadge("3"); +creditTab.updateBadge(null); +// Android +var tabFeeds = WL.TabBar.addItem ('tab2', function() { + console.log('handler'); +}, 'Engadget Feeds', { + image: 'images/feed.png', + imageSelected: 'images/feed.png' +}); +tabFeeds.setEnabled(true); + +// Test WLResourceRequest +var request1 = new WLResourceRequest('/adapters/sampleAdapter/multiplyNumbers', WLResourceRequest.GET); +request1.setQueryParameter('params', [5, 6]); +request1.send().then(function(response: WL.Response) { + console.log('Success ' + response.responseJSON); +}, function(error: WL.ResponseBase) { + console.log('Error ' + error.errorCode + ' ' + error.errorMsg); +}); +var request2 = new WLResourceRequest('url', WLResourceRequest.POST, 30000); +request2.send('content').then(function(response: WL.Response) { + console.log('Success ' + response.responseJSON); +}, function(error: WL.ResponseBase) { + console.log('Error ' + error.errorCode + ' ' + error.errorMsg); +}); +var request3 = new WLResourceRequest('url', 'METHOD', 50000); +request3.send({ data: 'content', more_data: 'more_content' }).then(function(response: WL.Response) { + console.log('Success ' + response.responseJSON); +}, function(error: WL.ResponseBase) { + console.log('Error ' + error.errorCode + ' ' + error.errorMsg); +}); diff --git a/ibm-mobilefirst/ibm-mobilefirst-tests.ts.tscparams b/ibm-mobilefirst/ibm-mobilefirst-tests.ts.tscparams new file mode 100644 index 000000000..4169d3605 --- /dev/null +++ b/ibm-mobilefirst/ibm-mobilefirst-tests.ts.tscparams @@ -0,0 +1 @@ +--noImplicitAny --module commonjs --target es5 \ No newline at end of file diff --git a/ibm-mobilefirst/ibm-mobilefirst.d.ts b/ibm-mobilefirst/ibm-mobilefirst.d.ts new file mode 100644 index 000000000..38a614538 --- /dev/null +++ b/ibm-mobilefirst/ibm-mobilefirst.d.ts @@ -0,0 +1,908 @@ +// Type definitions for IBM MobileFirst Platform Foundation (Unofficial) +// Project: http://www.ibm.com/software/products/en/mobilefirstfoundation +// Definitions by: Guillermo Ignacio Enriquez Gutierrez +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module WL.Events { + var WORKLIGHT_IS_CONNECTED: string; + var WORKLIGHT_IS_DISCONNECTED: string; +} +declare module WL.AppProperty { + var AIR_ICON_16x16_PATH: string; + var AIR_ICON_128x128_PATH: string; + var DOWNLOAD_APP_LINK: string; + var APP_DISPLAY_NAME: string; + var APP_LOGIN_TYPE: string; + var APP_VERSION: string; + var LATEST_VERSION: string; + var MAIN_FILE_PATH: string; + var SHOW_IN_TASKBAR: string; + var THUMBNAIL_IMAGE_URL: string; +} +declare module WL.Environment { + var ADOBE_AIR: string; + var ANDROID: string; + var EMBEDDED: string; + var IPAD: string; + var IPHONE: string; + var MOBILE_WEB: string; + var PREVIEW: string; + var WINDOWS_PHONE_8: string; + var WINDOWS8: string; +} +declare module WL { + interface IResponse { + invocationContext?: any; + } + interface Headers { + [key: string]: string; + } + class ResponseBase { + invocationContext: any; + headerJSON: {[key: string]: any}; // JSON Object + readyState: number; + request: any; + responseJSON: {[key: string]: any}; // JSON Object + responseText: string; + responseXML: string; + status: number; + statusText: string; + errorCode: number; + errorMsg: string; + } + class FailureResponse extends ResponseBase { + } + class Response extends ResponseBase { + getHeaderNames(): string[]; + getAllHeaders(): Headers; + getHeader(name: any): string; + } + interface Options { + onSuccess?: (response: IResponse) => void; + onFailure?: (response: IResponse) => void; + invocationContext?: any; + } + interface ResponseHandler { + (response: T): void; + } +} +declare module WL.Analytics { + function disable(): void; + function enable(): void; + function log(message: string, name: string): void; + /** + * @deprecated since version 6.2. WL.Analytics.restart is now a NOP. + */ + function restart(): void; + function send(): void; + function state(): void; +} +declare module WL.App { + interface ActionReceiverCallback { + (action: any): void; + } + interface Callback { + (): void; + } + interface OpenURLOptions { + status?: number; + toolbar?: number; + location?: number; + menubar?: number; + directories?: number; + resizable?: number; + scrollbars?: number; + } + interface Data { + } + interface KeepAliveInBackgroundOptions { + tickerText?: string; + contentTitle?: string; + contentTextText?: string; + icon?: string; + notificationId?: number; + className?: string; + } + function addActionReceiver(id: string, callback: ActionReceiverCallback): void; + /** + * @deprecate Deprecated. + */ + function close(): void; + function copyToClipboard(stringToCopy: string, callback?: Callback): void; + function getDeviceLanguage(): string; + function getDeviceLocale(): string; + /** + * TODO: declare exception type. (Exceptions that are thrown by the IBM® Worklight® client runtime framework) + */ + function getErrorMessage(exception: any): string; + function hideSplashScreen(): void; + function openURL(url: string, target?: string, options?: OpenURLOptions): void; + function overrideBackButton(callback: Callback): void; + function removeActionReceiver(id: string): void; + /** + * @deprecated since version 6.0.0 + */ + function resetBackButton(): void; + function sendActionToNative(action: string, data?: Data): void; + function setKeepAliveInBackground(enabled: boolean, options?: KeepAliveInBackgroundOptions): void; + function showSplashScreen(): void; +} +declare module WL.App.BackgroundHandler { + interface Handler { + (): void; + } + function setOnAppEnteringBackground(handler: Handler): void; + var hideView: Handler; + var defaultIOSBehavior: Handler; + /** + * @deprecated since version 6.0.0 + */ + var hideElements: Handler; +} +declare module WL.Badge { + function setNumber(badgeNumber: number): void; +} +declare module WL { + interface BusyIndicatorOptions { + tickerText?: string; + contentTitle?: string; + contentTextText?: string; + icon?: string; + notificationId?: number; + className?: string; + } + class BusyIndicator { + constructor(containerId?: string, options?: BusyIndicator); + hide(): void; + show(): void; + } +} +declare module WL.Client { + interface SharedTokenObject { + key: string; + } + interface ConnectOptions { + onSuccess: (response: ResponseBase) => void; + onFailure: (response: FailureResponse) => void; + timeout?: number; + } + interface ChallengehandlerInvocationData { + adapter: string; + procedure: string; + parameters: any[]; + } + interface ChallengeHandlerAuthenticationOptions { + } + interface ChallengeHandlerSubmitLoginFormOptions { + timeout?: number; + headers?: Object; + parameters?: Object; + } + class AbstractChallengeHandler { + handleChallenge(challenge: any): boolean; + isCustomResponse(transport: any): boolean; + submitAdapterAuthentication(invocationData: ChallengehandlerInvocationData, options: ChallengeHandlerAuthenticationOptions): void; + submitFailure(error: string): void; + submitLoginForm(reqURL: string, options: ChallengeHandlerSubmitLoginFormOptions, submitLoginFormCallback: (transport: any) => void): void; + submitSuccess(): void; + } + interface InitOptions extends Options { + timeout?: number; + /** + * @deprecated since version 6.2. Use WL.Logger.config function with an object specifying the level instead. + */ + enableLogger?: boolean; + messages?: string; + authenticator?: Object; + heartBeatIntervalInSecs?: number; + /** + * @deprecated. If you would like your application to connect to the Worklight Server, use WL.Client.connect(). + */ + connectOnStartup?: boolean; + onConnectionFailure?: (response: WL.FailureResponse) => void; + onUnsupportedVersion?: (response: WL.FailureResponse) => void; + onRequestTimeout?: (response: WL.FailureResponse) => void; + onUnsupportedBrowser?: (response: WL.FailureResponse) => void; + onDisabledCookies?: (response: WL.FailureResponse) => void; + onUserInstanceAccessViolation?: (response: WL.FailureResponse) => void; + onErrorRemoteDisableDenial?: (response: WL.FailureResponse) => void; + /** + * @deprecated since version 5.0.6. Instead, use onErrorRemoteDisableDenial. + */ + onErrorAppVersionAccessDenial?: (response: WL.FailureResponse) => void; + validateArguments?: boolean; + autoHideSplash?: boolean; + onGetCustomDeviceProvisioningProperties: (resumeDeviceProvisioningProcess: (data: any) => void) => void; + } + interface ProcedureInvocationData { + adapter: string; + procedure: string; + parameters?: any[]; + compressResponse?: boolean; + } + interface ProcedureInvocationResult { + isSuccessful: boolean; + errors?: string[]; + } + interface ProcedureResponse extends ResponseBase { + invocationResult?: ProcedureInvocationResult; + parameters?: any[]; + } + interface ProcedureInvocationOptions extends Options { + timeout: number; + onSuccess: (response: ProcedureResponse) => void; + } + function addGlobalHeader(headerName: string, headerValue: string): void; + function checkForDirectUpdate(options: Options): void; + function clearSharedToken(object: SharedTokenObject): JQueryDeferred; + function close(): void; + function connect(options?: ConnectOptions): void; + function createChallengeHandler(realmName: string): AbstractChallengeHandler; + function createProvisioningChallengeHandler(realmName: string): AbstractChallengeHandler; + function createWLChallengeHandler(realName: string): AbstractChallengeHandler; + function deleteUserPref(key: string, options?: Options): void; + /** + * See WL.AppProperty for possible results + */ + function getAppProperty(property: any): any; + /** + * See WL.Environment for possible results + */ + function getEnvironment(): string; + function getLanguage(): string; + function getLastAccessToken(scope?: string): string; + function getLoginName(realmName: string): string; + /** + * @deprecated since version 7.0 + */ + function getRequiredAccessTokenScope(status: number, header: string): string; + function getSharedToken(object: SharedTokenObject): JQueryDeferred; + function getUserInfo(realm: string, key: string): any; + function getUserName(realm: any): string; + function getUserPref(key: any): any; + function hasUserPref(key: any): boolean; + function init(options: InitOptions): void; + function invokeProcedure(invocationData: ProcedureInvocationData, options?: ProcedureInvocationOptions): JQueryDeferred; + /** + * @deprecated since version 4.1.3. Use WL.Device.getNetworkInfo instead. + */ + function isConnected(): void; + function isUserAuthenticated(realm: string): boolean; + /** + * @deprecated since version 7.0. Use WL.Logger instead. + */ + function logActivity(activityType: string): void; + function login(realm: string, options?: Options): void; + function logout(realm: string, options?: Options): void; + function minimize(): void; + /** + * @deprecated since version 7.0 + */ + function obtainAccessToken(scope: string, onSuccess: ResponseHandler, onFailure: ResponseHandler): void; + function purgeEventTransmissionBuffer(): void; + function reloadApp(): void; + function removeGlobalHeader(headerName: string): void; + interface EventTransmissionPolicy { + eventStorageEnabled?: boolean; + interval?: number; + } + function setEventTransmissionPolicy(policy: EventTransmissionPolicy): void; + function setHeartBeatInterval(interval: number): void; + function setSharedToken(token: SharedTokenObject): void; + function setUserPref(key: string, value: string, options?: Options): void; + interface UserPreferences { + [key: string]: string; + } + function setUserPrefs(userPrefsHash: UserPreferences, options?: Options): void; + function transmitEvent(event: any, immediate?: boolean): void; + function updateUserInfo(options: Options): void; +} +declare module WL.Device { + interface AddressPair { + wifiAddress: string; + "3GAddress": string; + } + interface NetworkInfo { + isNetworkConnected?: boolean; + isAirplaneMode?: boolean; + isRoaming?: boolean; + networkConnectionType?: string; + wifiName?: string; + telephonyNetworkType?: string; + carrierName?: string; + ipAddress?: string; + Ipv4Addresses?: AddressPair[]; + Ipv6Addresses?: AddressPair[]; + } + function getNetworkInfo(callback: (networkInfo: NetworkInfo) => void): void; +} +declare module WL.EncryptedCache { + var OK: number; + var ERROR_COULD_NOT_GENERATE_KEY: number; + var ERROR_CREDENTIALS_MISMATCH: number; + var ERROR_EOC_CLOSED: number; + var ERROR_EOC_DELETED: number; + var ERROR_EOC_TO_BE_DELETED: number; + var ERROR_INVALID_PARAMETER: number; + var ERROR_KEY_CREATION_IN_PROGRESS: number; + var ERROR_LOCAL_STORAGE_NOT_SUPPORTED: number; + var ERROR_MIGRATION: number; + var ERROR_NO_EOC: number; + var ERROR_NO_SUCH_KEY: number; + var ERROR_SECURE_RANDOM_GENERATOR_UNAVAILABLE: number; + var ERROR_UNKNOWN: number; + var ERROR_UNSAFE_CREDENTIALS: number; + /** + * See above statuses for possible values + */ + interface StatusHandler { + (status: number): void; + } + function close(successHandler: StatusHandler, failureHandler: StatusHandler): void; + function destroy(successHandler: StatusHandler, failureHandler: StatusHandler): void; + function open(credentials: string, createIfNone: boolean, successHandler: StatusHandler, failureHandler: StatusHandler): void; + function read(key: string, successHandler: StatusHandler, failureHandler: StatusHandler): void; + function remove(key: string, successHandler: StatusHandler, failureHandler: StatusHandler): void; + function write(key: string, value: string, successHandler: StatusHandler, failureHandler: StatusHandler): void; +} +declare module WL.Geo { + interface Coordinate { + latitute: number; + longitude: number; + } + interface Circle extends Coordinate { + radius: number; + } + interface DistanceOptions { + bufferZoneWidth: number; + } + interface InsideOutsideOptions { + /** + * confidenceLevel can be 'low', 'medium', 'high' + */ + confidenceLevel: string; + } + function getDistanceBetweenCoordinates(coordinate1: Coordinate, coordinate2: Coordinate): number; + function getDistanceToCircle(coordinate: Coordinate, circle: Circle, options: DistanceOptions): number; + function getDistanceToPolygon(coordinate: Coordinate, polygon: Coordinate[], options: DistanceOptions): number; + function isInsideCircle(coordinate: Coordinate, circle: Circle, options: InsideOutsideOptions): boolean; + function isInsidePolygon(coordinate: Coordinate, polygon: Coordinate[], options: InsideOutsideOptions): boolean; + function isOutsideCircle(coordinate: Coordinate, circle: Circle, options: InsideOutsideOptions): boolean; + function isOutsidePolygon(coordinate: Coordinate, polygon: Coordinate[], options: InsideOutsideOptions): boolean; +} +declare module WL { + class Item { + setEnabled(isEnable: string): void; + setImagePath(imagePath: string): void; + setTitle(title: string): void; + } +} +declare module WL.JSONStore { + /** + * Changes the password for the internal storage. You must have an initialized collection before calling WL.JSONStore.changePassword. + */ + function changePassword(oldPassword: string, newPassword: string, username: string, options: WL.Options): JQueryDeferred; + /** + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.init + */ + function clearPassword(): boolean; + /** + * Locks access to all the collections until WL.JSONStore.init is called. + */ + function closeAll(options?: WL.Options): JQueryDeferred; + /** + * Commit a transaction. + */ + function commitTransaction(): JQueryDeferred; + /** + * Completely wipes data for all users, destroys the internal storage, and clears security artifacts. + * @parameters options is @deprecated + */ + function destroy(username: string, options?: WL.Options): JQueryDeferred; + /** + * @deprecated since version 6.2.0. + */ + function documentify(id: number, data: any): any; + /** + * Returns information about the file that is used to persist data in the store. The following key value pairs are returned: + * name - name of the store + * size - the total size, in bytes, of the store + * isEncrypted - boolean that is true when encrypted and false otherwise. + */ + function fileInfo(): JQueryDeferred; + /** + * Provides an accessor to the collection if the collection exists, otherwise it returns undefined. + */ + function get(collectionName: string): JSONStoreInstance; + /** + * Returns the message that is associated with a JSONStore error code. + */ + function getErrorMessage(errorCode: number): string; + interface InitOptions { + username?: string; + password?: string; + clear?: boolean; + localKeyGen?: boolean; + analytics?: boolean; + } + function init(collections: any, options?: InitOptions): JQueryDeferred; + /** + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.init + */ + function initCollection(name: string, searchFields: any, options?: InitOptions): WL.JSONStore.JSONStoreInstance; + /** + * Creates a query for advanced find. See WL.JSONStore.QueryPart for more information. + */ + function QueryPart(): QueryPartObj; + /** + * Roll back a transaction + */ + function rollbackTransaction(): JQueryDeferred; + /** + * Initiates a transaction + */ + function startTransaction(): JQueryDeferred; + /** + * Sets the password that is used to generate keys to encrypt data that is stored locally on the device. + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.init + */ + function usePassword(pwd: string): boolean; + interface AddOptions extends WL.Options { + additionalSearchFields?: any; + markDirty?: boolean; + /** + * @deprecated + */ + push?: boolean; + } + interface BasicFindOptions extends WL.Options { + filter?: string[]; + sort?: string[]; + } + interface AdvancedFindOptions extends BasicFindOptions { + limit?: number; + offset?: number; + } + interface FindOptions extends BasicFindOptions { + exact?: boolean; + limit?: number; + offset?: number; + } + interface EraseOptions extends WL.Options { + push?: boolean; + } + interface RefreshOptions extends WL.Options { + push: boolean; + } + interface ChangeOptions extends WL.Options { + addNew?: boolean; + markDirty?: boolean; + replaceCriteria?: string[]; + } + interface RemoveOptions extends WL.Options { + markDirty?: boolean; + /** + * @deprecated + */ + push?: boolean; + exact?: boolean; + } + interface ReplaceOptions extends WL.Options { + markDirty?: boolean; + /** + * @deprecated + */ + push?: boolean; + } + interface StoreOptions extends WL.Options { + additionalSearchFields?: Object; + push?: boolean; + } + class JSONStoreInstance { + add(data: any, options?: AddOptions): JQueryDeferred; + advancedFind(query: any[], options?: AdvancedFindOptions): JQueryDeferred; + change(data: any, options?: ChangeOptions): JQueryDeferred; + clear(options?: WL.Options): JQueryDeferred; + count(query?: any, options?: WL.Options): JQueryDeferred; + countAllDirty(options?: WL.Options): JQueryDeferred; + enhance(name: string, fn: Function): number; + /** + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.JSONStoreInstance.remove with {push: false}. + */ + erase(doc: any, options?: EraseOptions): void; + find(query: Object | Object[], options?: FindOptions): JQueryDeferred; + findAll(options?: BasicFindOptions): JQueryDeferred; + findById(options?: WL.Options): JQueryDeferred; + isDirty(doc: any, options?: WL.Options): JQueryDeferred; + /** + * @deprecated since version 6.2.0. + */ + load(options?: WL.Options): JQueryDeferred; + markClean(docs: any[], options?: WL.Options): JQueryDeferred; + /** + * @deprecated since version 6.2.0. + */ + push(options?: any): JQueryDeferred; + /** + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.JSONStoreInstance.push. + */ + pushSelected(doc: any, options?: WL.Options): JQueryDeferred; + /** + * @deprecated since version 5.0.6. It is no longer needed if you use WL.JSONStore.JSONStoreInstance.replace with {push: false}. + */ + refresh(doc: any, options?: RefreshOptions): JQueryDeferred; + remove(doc: any, options?: RemoveOptions): JQueryDeferred; + /** + * Deletes all the documents that are stored inside a collection. + */ + removeCollection(options?: WL.Options): JQueryDeferred; + replace(doc: Object | Object[], options?: ReplaceOptions): JQueryDeferred; + /** + * Writes data to a collection. + * @deprecated since version 5.0.6, it is no longer needed if you use WL.JSONStore.JSONStoreInstance.add with {push: false}. + */ + store(data: Object | Object[], options?: StoreOptions): void; + toString(limit?: number, offset?: number): JQueryDeferred; + } + class QueryPartObj { + /** + * Add a between clause to a query for advanced find. + */ + between(searchField: any, value: any): any[]; + /** + * Add an equal to clause to a query for advanced find. + */ + equal(searchField: any, value: any): any[]; + /** + * Add a greater or equal thanclause to a query for advanced find. + */ + greaterOrEqualThan(searchField: any, value: any): any[]; + /** + * Add a greater than clause to a query for advanced find. + */ + greaterThan(searchField: any, value: any): any[]; + /** + * Add an in clause to a query for advanced find. + */ + inside(searchField: any, value: any): any[]; + /** + * Add a left clause to a query for advanced find. + */ + leftLike(searchField: any, value: any): any[]; + /** + * Add a less or equal than clause to a query for advanced find. + */ + lessOrEqualThan(searchField: any, value: any): any[]; + /** + * Add a less than clause to a query for advanced find. + */ + lessThan(searchField: any, value: any): any[]; + /** + * Add a like clause to a query for advanced find. + */ + like(searchField: any, value: any): any[]; + /** + * Add a not between clause to a query for advanced find. + */ + notBetween(searchField: any, value: any): any[]; + /** + * Add a not equal to clause to a query for advanced find. + */ + notEqual(searchField: any, value: any): any[]; + /** + * Add a not in clause to a query for advanced find. + */ + notInside(searchField: any, value: any): any[]; + /** + * Add a not left clause to a query for advanced find. + */ + notLeftLike(searchField: any, value: any): any[]; + /** + * Add a not like clause to a query for advanced find. + */ + notLike(searchField: any, value: any): any[]; + /** + * Add a not right clause to a query for advanced find. + */ + notRightLike(searchField: any, value: any): any[]; + /** + * Add a right clause to a query for advanced find. + */ + rightLike(searchField: any, value: any): any[]; + } +} +declare module WL.LocalStorage { + function getValue(key: string): string; + function setValue(key: string, value: string): void; + function clear(key: string): void; + function clearAll(): void; +} +declare module WL { + var Logger: LoggerObject; + interface LoggerCallback { + (message: string | string[], level: string, package: string): void; + } + interface Tag { + level?: boolean; + tag?: boolean; + } + interface Filter { + [name: string]: string; + } + interface LoggerOptions { + stringify?: boolean; + pretty?: boolean; + stacktrace?: boolean; + callback?: LoggerCallback; + pkg?: string; + tag?: Tag; + /** + * @deprecated since version 6.2. use filters instead. + */ + whitelist?: string[]; + /** + * @deprecated since version 6.2. use filters instead. + */ + blacklist?: string[]; + filters?: Filter; + capture?: boolean; + autoSendLogs?: boolean; + maxFileSize?: number; + level?: string[] | string | number; + } + interface NativeOptions { + maxFileSize?: number; + level?: string; + capture?: boolean; + autoSendLogs?: boolean; + autoUpdateConfig?: boolean; + filters?: Filter; + } + /** + * Artifact to allow chaining of Logger class as: WL.Logger.ctx({pkg: 'something'}).debug('Hello world'); + */ + class LoggerObject { + /** + * Configures the logger globally. + */ + config(options?: LoggerOptions): LoggerObject; + /** + * Creates an instance of a logger with its own context (also called status or state). + */ + create(options?: LoggerOptions): LogInstance; + /** + * Updates the state (also called context or status) of the logger. + */ + ctx(options?: LoggerOptions): WL.LoggerObject; + /** + * Prints arguments to the console. + */ + debug(message: string): void; + /** + * Prints arguments to the console. + */ + error(message: string): void; + /** + * Prints arguments to the console. + */ + fatal(message: string): void; + /** + * Prints arguments to the console. + */ + info(message: string): void; + /** + * Prints arguments to the console. + */ + log(message: string): void; + /** + * Attach additional metadata to the next logger instance call. + */ + metadata(options: any): LoggerObject; + /** + * @deprecated since version 6.2. WL.Logger.on is now a no-op. WL.Logger is always enabled. Use WL.Logger.config with {'level': 'FATAL'} to reduce verbosity. + */ + off(): WL.LoggerObject; + /** + * @deprecated since version 6.2. WL.Logger.on is now a no-op. WL.Logger is always enabled. Use WL.Logger.config with {'level': 'FATAL'} to reduce verbosity. + */ + on(options: any): WL.LoggerObject; + /** + * Send any logs collected up to this point to the IBM® Worklight® server. + */ + send(): JQueryDeferred; + /** + * @deprecated since version 6.2. Use WL.Logger.config instead. Sets options in native application layer (iOS and Android only) + */ + setNativeOptions(options?: NativeOptions): void; + /** + * Shows the status (current configuration) of the logger. + */ + status(): JQueryDeferred; + /** + * Prints arguments to the console. + */ + trace(message: string): void; + /** + * Retrieves and applies any matching configuration profile from the IBM® Worklight® Server. + */ + updateConfigFromServer(): JQueryDeferred; + /** + * Prints arguments to the console. + */ + warn(message: string): void; + } + /** + * Class which defines instances created via: WL.Logger.create({pkg: 'something'}); + * Actual definition is outside of WL namespace. For easier d.ts file compiling it is here + */ + class LogInstance { + debug(message: string): void; + error(message: string): void; + fatal(message: string): void; + info(message: string): void; + trace(message: string): void; + warn(message: string): void; + } +} +declare module WL.NativePage { + function show(className: string, callback: (data: any) => void, data: any): void; +} +declare module WL.SecurityUtils { + interface DecryptOptions { + key: string; + ct: string; + lv: string; + src: string; + v: string; + } + interface EncryptOptions { + key: string; + text: string; + } + interface KeygenOptions { + password: string; + salt: string; + iterations: number; + } + function base64Decode(input: string): JQueryDeferred; + function base64Encode(input: string): JQueryDeferred; + function decrypt(options: DecryptOptions): JQueryDeferred; + function encrypt(options: EncryptOptions): JQueryDeferred; + function keygen(options: KeygenOptions): JQueryDeferred; + function localRandomString(bytes?: number): JQueryDeferred; + function remoteRandomString(bytes?: number): JQueryDeferred; +} +declare module WL.SimpleDialog { + interface Button { + text: string; + handler?: Function; + } + interface Options { + title: string; + text: string; + } + function show(title: string, text: string, buttons: Button[], options?: Options): void; +} + +declare module WL.TabBar { + interface ItemOptions { + image: string; + badge?: string; // for iOS + imageSelected?: string; // for Android + } + function addItem(id: string, callback: Function, title: string, options: ItemOptions): WL.TabBarItem; + function init(): void; + function isVisible(): boolean; + function RemoveAllItems(): void; + function setEnabled(isEnabled: boolean): void; + /** + * @deprecated + */ + function setParentDivId(parentId: string): void; + function setSelectedItem(id: string): void; + function setVisible(isVisible: boolean): void; +} + +declare module WL { + class TabBarItem { + setEnabled(isEnabled: boolean): void; + updateBadge(badge?: string): void; + } +} + +declare module WL.Toast { + function show(): void; +} +declare module WL.Trusteer { + interface AssesmentRisk { + value: number; + additionalData: string; + lastCalculated: number; + name: string; + } + interface AssetmentRisks { + device_key: string; + 'malware.any'?: AssesmentRisk; + 'network.wifi'?: AssesmentRisk; + 'os.rooted'?: AssesmentRisk; + 'os.rooted.native'?: AssesmentRisk; + 'os.rooted.hiders'?: AssesmentRisk; + 'os.ver_up_to_date'?: AssesmentRisk; + 'plat.android.dumpsys'?: AssesmentRisk; + 'plat.android.apprestrict'?: AssesmentRisk; + 'total.risk.generic'?: AssesmentRisk; + 'tas.config_update'?: AssesmentRisk; + } + function getRiskAssessment(onSuccess: ResponseHandler, onFailure: ResponseHandler): AssetmentRisks; +} +declare module WL.UserAuth { + function deleteCertificate(provisioningEntity?: string): JQueryDeferred; +} +declare module WLAuthorizationManager { + /** + * AuthorizationPersistencePolicy possible values + */ + var ALWAYS: string; + var NEVER: string; + interface RequestObject { + setRequestHeader: (header: string, value: string) => void; + } + function addCachedAuthorizationHeader(request: RequestObject): JQueryDeferred; + function getAppIdentity(): JQueryDeferred; + function getAuthorizationScope(responseAuthenticationHeader: string): string; + /** + * TODO: Set Promise types. Should be something like: JQueryDeferred() + */ + function getCachedAuthorizationHeader(): JQueryDeferred; + /** + * TODO: Set Promise types. Should be something like: JQueryDeferred() + */ + function getDeviceIdentity(): JQueryDeferred; + /** + * TODO: Set Promise types. Should be something like: JQueryDeferred() + */ + function getUserIdentity(): JQueryDeferred; + function isAuthorizationRequired(responseStatus: number, responseAuthenticationHeader: string): boolean; + /** + * TODO: Set Promise types. Should be something like: JQueryDeferred() + */ + function obtainAuthorizationHeader(scope: string): JQueryDeferred; + /** + * See WLAuthorizarionManager.NEVER and WLAuthorizarionManager.ALWAYS + */ + function setAuthorizationPersistencePolicy(authorizationPersistencePolicy: string): void; +} + +declare module WL { + var ClientMessages: { [name: string]: string }; +} + +declare class WLResourceRequest { + constructor(url: string, method: string, timeout?: number); + addHeader(name: string, value: string|number|boolean): void; + getHeader(name: string): string; + getHeaderNames(): string[]; + getHeaders(name: string): string[]; + getMethod(): string; + getQueryParameters(): any; // JSON + getTimeout(): number; + getUrl(): string; + send(content?: any): JQueryDeferred; + sendFormParameters(json: Object): JQueryDeferred; + setHeader(name: string, value: string|number|boolean): void; + setHeaders(requestHeaders?: { [name: string]: string|string[] }): void; + setQueryParameter(name: string, value: string|number|boolean|Object): void; + setQueryParameters(parameters?: { [name: string]: string|number|boolean|Object }): void; + setTimeout(requestTimeout: number): void; + + static GET: string; + static POST: string; + static PUT: string; + static DELETE: string; + static HEAD: string; + static OPTIONS: string; + static TRACE: string; + static CONNECT: string; +}