{"id":15018579,"url":"https://github.com/nativescript-community/https","last_synced_at":"2026-04-02T20:02:34.934Z","repository":{"id":45938740,"uuid":"77530217","full_name":"nativescript-community/https","owner":"nativescript-community","description":"Secure HTTP client with SSL pinning for Nativescript - iOS/Android","archived":false,"fork":false,"pushed_at":"2026-03-26T10:50:30.000Z","size":54885,"stargazers_count":52,"open_issues_count":14,"forks_count":40,"subscribers_count":15,"default_branch":"master","last_synced_at":"2026-03-27T03:58:15.892Z","etag":null,"topics":["api","client","http","https","nativescript","security","ssl"],"latest_commit_sha":null,"homepage":"https://nativescript-community.github.io/https/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nativescript-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["farfromrefug"]}},"created_at":"2016-12-28T12:09:02.000Z","updated_at":"2026-03-26T10:50:34.000Z","dependencies_parsed_at":"2023-10-25T08:50:19.804Z","dependency_job_id":"57976d73-a25d-437b-b92b-9c8aa30054a1","html_url":"https://github.com/nativescript-community/https","commit_stats":{"total_commits":312,"total_committers":17,"mean_commits":"18.352941176470587","dds":0.5865384615384616,"last_synced_commit":"bb830b47cd24b3c45d8d09fa0d861dd0ab2fb918"},"previous_names":["gethuman/nativescript-https"],"tags_count":82,"template":false,"template_full_name":null,"purl":"pkg:github/nativescript-community/https","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativescript-community%2Fhttps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativescript-community%2Fhttps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativescript-community%2Fhttps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativescript-community%2Fhttps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nativescript-community","download_url":"https://codeload.github.com/nativescript-community/https/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nativescript-community%2Fhttps/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31314811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","client","http","https","nativescript","security","ssl"],"created_at":"2024-09-24T19:52:08.467Z","updated_at":"2026-04-02T20:02:34.905Z","avatar_url":"https://github.com/nativescript-community.png","language":"TypeScript","readme":"\u003c!-- ⚠️ This README has been generated from the file(s) \"blueprint.md\" ⚠️--\u003e\u003c!-- ⚠️ This README has been generated from the file(s) \"blueprint.md\" ⚠️--\u003e\n\u003c!--  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      DO NOT EDIT THIS READEME DIRECTLY! Edit \"bluesprint.md\" instead.\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --\u003e\n\u003ch1 align=\"center\"\u003e@nativescript-community/https\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n\t\t\u003ca href=\"https://npmcharts.com/compare/@nativescript-community/https?minimal=true\"\u003e\u003cimg alt=\"Downloads per month\" src=\"https://img.shields.io/npm/dm/@nativescript-community/https.svg\" height=\"20\"/\u003e\u003c/a\u003e\r\n\u003ca href=\"https://www.npmjs.com/package/@nativescript-community/https\"\u003e\u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/@nativescript-community/https.svg\" height=\"20\"/\u003e\u003c/a\u003e\n\t\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eNativescript plugin for https requests\u003c/b\u003e\u003c/br\u003e\n  \u003csub\u003e\u003csub\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\n\r\n[](#table-of-contents)\r\n\r\n\r\n[](#table-of-contents)\r\n\r\n## Table of Contents\n\n\t* [Installation](#installation)\r\n\t\t\t* [A drop-in replacement for the [default http module](https://docs.nativescript.org/cookbook/http).](#a-drop-in-replacement-for-the-default-http-modulehttpsdocsnativescriptorgcookbookhttp)\r\n\t* [Features](#features)\r\n\t* [FAQ](#faq)\r\n\t* [Installation](#installation-1)\r\n\t* [Examples](#examples)\r\n\t\t* [Hitting an API using `GET` method](#hitting-an-api-using-get-method)\r\n\t* [Configuration](#configuration)\r\n\t\t* [Installing your SSL certificate](#installing-your-ssl-certificate)\r\n\t\t\t* [Enabling SSL pinning](#enabling-ssl-pinning)\r\n\t\t\t* [Disabling SSL pinning](#disabling-ssl-pinning)\r\n\t\t* [useLegacy](#uselegacy)\r\n\t\t* [Cookie](#cookie)\r\n\t\t* [Enabling Cache](#enabling-cache)\r\n\t\t* [Multipart form data](#multipart-form-data)\r\n\t\t* [Options](#options)\r\n\t* [Webpack / bundling](#webpack--bundling)\r\n\t* [`iOS` Troubleshooting](#ios-troubleshooting)\r\n\t* [`Android` troubleshooting](#android-troubleshooting)\r\n* [Thanks](#thanks)\r\n\t\t* [Examples:](#examples-1)\r\n\t* [Demos and Development](#demos-and-development)\r\n\t\t* [Repo Setup](#repo-setup)\r\n\t\t* [Build](#build)\r\n\t\t* [Demos](#demos)\r\n\t* [Contributing](#contributing)\r\n\t\t* [Update repo ](#update-repo-)\r\n\t\t* [Update readme ](#update-readme-)\r\n\t\t* [Update doc ](#update-doc-)\r\n\t\t* [Publish](#publish)\r\n\t\t* [modifying submodules](#modifying-submodules)\r\n\t* [Questions](#questions)\n\n\r\n[](#installation)\r\n\r\n\r\n[](#installation)\r\n\r\n## Installation\nRun the following command from the root of your project:\n\n`ns plugin add @nativescript-community/https`\n\nEasily integrate the most reliable native networking libraries with the latest and greatest HTTPS security features.\n\n\u003e Android: version 4.x using okhttp 4.x changing minSDKVersion to 21! If lower needed stick to 3.x\n\n\u003e Plugin version 2.0.0 bumps `AFNetworking` on iOS to [4.0.0](https://github.com/AFNetworking/AFNetworking/releases/tag/4.0.0) which no longer relies on `UIWebView`. Make sure to run `pod repo update` to get the latest `AFNetworking` pod on your development machine.\n\n#### A drop-in replacement for the [default http module](https://docs.nativescript.org/cookbook/http).\n\n\r\n[](#features)\r\n\r\n\r\n[](#features)\r\n\r\n## Features\n\n-   Modern TLS \u0026 SSL security features\n-   Shared connection pooling reduces request latency\n-   Silently recovers from common connection problems\n-   Everything runs on a native background thread\n-   Transparent GZIP\n-   HTTP/2 support\n-   Multiform part\n-   Cache\n-   Basic Cookie support\n\n\r\n[](#faq)\r\n\r\n\r\n[](#faq)\r\n\r\n## FAQ\n\n\u003e What the flip is SSL pinning and all this security mumbo jumbo?\n\n[How to make your apps more secure with SSL pinning](https://infinum.co/the-capsized-eight/how-to-make-your-ios-apps-more-secure-with-ssl-pinning).\n\n\u003e Do I have to use SSL pinning?\n\n**No.** This plugin works out of the box without any security configurations needed. Either way you'll still benefit from all the features listed above.\n\n\n\r\n[](#installation)\r\n\r\n\r\n[](#installation)\r\n\r\n## Installation\n\n```bash\ntns plugin add @nativescript-community/https\n```\n\n\r\n[](#examples)\r\n\r\n\r\n[](#examples)\r\n\r\n## Examples\n\n### Hitting an API using `GET` method\n\n```typescript\nimport * as Https from '@nativescript-community/https';\nHttps.request({\n    url: 'https://httpbin.org/get',\n    method: 'GET',\n    timeout: 30, // seconds (default 10)\n})\n    .then(function (response) {\n        console.log('Https.request response', response);\n    })\n    .catch(function (error) {\n        console.error('Https.request error', error);\n    });\n```\n\n\r\n[](#configuration)\r\n\r\n\r\n[](#configuration)\r\n\r\n## Configuration\n\n### Installing your SSL certificate\n\nCreate a folder called `assets` in your projects `app` folder like so `\u003cproject\u003e/app/assets`. Using chrome, go to the URL where the SSL certificate resides. View the details then drag and drop the certificate image into the `assets` folder.\n\n![Installing your SSL certificate](http://i.imgur.com/hn4duT3.gif)\n\n#### Enabling SSL pinning\n\n```typescript\nimport { knownFolders } from 'file-system';\nimport * as Https from '@nativescript-community/https';\nlet dir = knownFolders.currentApp().getFolder('assets');\nlet certificate = dir.getFile('httpbin.org.cer').path;\nHttps.enableSSLPinning({ host: 'httpbin.org', certificate });\n```\n\nOnce you've enabled SSL pinning you **CAN NOT** re-enable with a different `host` or `certificate` file.\n\n#### Disabling SSL pinning\n\n```typescript\nimport * as Https from '@nativescript-community/https';\nHttps.disableSSLPinning();\n```\n\nAll requests after calling this method will no longer utilize SSL pinning until it is re-enabled once again.\n\n### useLegacy\n\nThere is a new option called `useLegacy`. You can set of every request options.\nWhen using that option the request will behave more like {N} http module.\n\n-   the `content` returned by a request is not the resulting string but an object. It follows [HTTPContent](https://docs.nativescript.org/api-reference/interfaces/_http_.httpcontent) format for the most part. You can call `toJSON` or `toFile`. The only difference is that `toFile` returns a `Promise\u003cFile\u003e` which means that it is async and run in a background thread!\n-   an error return a `content` too allowing you to read its content.\n\n### Cookie\n\nBy default basic Cookie support is enabled to work like in {N} `http` module.\nIn the future more options will be added\n\n### Enabling Cache\n\n```typescript\nimport { knownFolders, path } from '@nativescript/core/file-system';\nimport * as Https from '@nativescript-community/https';\nHttps.setCache({\n    diskLocation: path.join(knownFolders.documents().path, 'httpcache'),\n    diskSize: 10 * 1024 * 1024, // 10 MiB\n});\n\n/// later on when calling your request you can use the cachePolicy option\n```\n\n### Multipart form data\n\nIf you set the `Content-Type` header to `\"multipart/form-data\"` the request body will be evaluated as a multipart form data. Each body parameter is expected to be in this format:\n\n```typescript\n{\n\tdata: any\n    parameterName: string,\n    fileName?: string\n    contentType?: string\n}\n\n```\n\nif `fileName` and `contentType` are set then data is expected to be either a `NSData` on iOS or a `native.Array\u003cnumber\u003e` on Android.\n\n### Options\n\n```typescript\nexport interface HttpsSSLPinningOptions {\n    host: string;\n    certificate: string;\n    allowInvalidCertificates?: boolean;\n    validatesDomainName?: boolean;\n    commonName?: string;\n}\nimport { HttpRequestOptions } from 'tns-core-modules/http';\nexport interface HttpsRequestOptions extends HTTPOptions {\n    useLegacy?: boolean;\n    cachePolicy?: 'noCache' | 'onlyCache' | 'ignoreCache';\n    onProgress?: (current: number, total: number) =\u003e void;\n}\n```\n\n| SSLPinning Option                    | Description                                                                                                                                     |\n| ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |\n| `host: string`                       | This must be the request domain name eg `sales.company.org`.                                                                                    |\n| `commonName?: string`                | Default: options.host, set if certificate CN is different from the host eg `*.company.org` (Android specific)                                   |\n| `certificate: string`                | The uri path to your `.cer` certificate file.                                                                                                   |\n| `allowInvalidCertificates?: boolean` | Default: `false`. This should **always** be `false` if you are using SSL pinning. Set this to `true` if you're using a self-signed certificate. |\n| `validatesDomainName?: boolean`      | Default: `true`. Determines if the domain name should be validated with your pinned certificate.                                                |\n\n| Requests Option                                         | Description                                                                                                                                                  |\n| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `useLegacy?: boolean`                                   | Default: `false`. [IOS only] set to true in order to get the response data (when status \u003e= 300)in the `content` directly instead of `response.body.content`. |\n| `cachePolicy?: 'noCache'                                | 'onlyCache'                                                                                                                                                  | 'ignoreCache'` | Set the cache policy to use with that request. This only works with GET requests for now. |\n| `onProgress?: (current: number, total: number) =\u003e void` | [IOS only] Set the progress callback.                                                                                                                        |\n\n\r\n[](#webpack--bundling)\r\n\r\n\r\n[](#webpack--bundling)\r\n\r\n## Webpack / bundling\n\nSince you're probably shipping a certificate with your app (like [our demo does](https://github.com/nativescript-community/https/tree/master/demo/app/assets)),\nmake sure it's bundled by Webpack as well. You can do this by [adding the certificate(s) with the `CopyWebpackPlugin`](https://github.com/nativescript-community/https/blob/a5c841c0af7ff6d9994fa23f7fba0df0514c58f1/demo/webpack.config.js#L240).\n\n\r\n[](#ios-troubleshooting)\r\n\r\n\r\n[](#ios-troubleshooting)\r\n\r\n## `iOS` Troubleshooting\n\n\u003e ### Please educate yourself on iOS's [App Transport Security](https://github.com/codepath/ios_guides/wiki/App-Transport-Security) before starting beef!\n\nIf you try and hit an `https` route without adding it to App Transport Security's whitelist it will not work!\nYou can bypass this behavior by adding the following to your projects `Info.plist`:\n\n```xml\n\u003ckey\u003eNSAppTransportSecurity\u003c/key\u003e\n\u003cdict\u003e\n    \u003ckey\u003eNSAllowsArbitraryLoads\u003c/key\u003e\n    \u003ctrue/\u003e\n\u003c/dict\u003e\n```\n\n\u003e This plugin **does not** add `NSAllowsArbitraryLoads` to your projects `Info.plist` for you.\n\n\r\n[](#android-troubleshooting)\r\n\r\n\r\n[](#android-troubleshooting)\r\n\r\n## `Android` troubleshooting\n\nIf you app crashes with a message that it's doing too much networking on the main thread,\nthen pass the option `allowLargeResponse` with value `true` to the `request` function.\n\n\r\n[](#thanks)\r\n\r\n\r\n[](#thanks)\r\n\r\n# Thanks\n\n| Who                                             | Why                                                                                                                                                               |\n| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Robert Laverty](https://github.com/roblav96)   | For creating and maintaining this plugin for a long time |\n| [Jeff Whelple](https://github.com/gethuman)   | For contributing |\n| [Eddy Verbruggen](https://github.com/EddyVerbruggen)   | For maintaining this before it got transferred |\n| [AFNetworking](https://github.com/AFNetworking) | [AFNetworking](https://github.com/AFNetworking/AFNetworking) A delightful networking framework for iOS, OS X, watchOS, and tvOS.                                  |\n| [Square](http://square.github.io/)              | [okhttp](https://github.com/square/okhttp) An HTTP+HTTP/2 client for Android and Java applications.                                                               |\n\n### Examples:\n\n- [Basic](demo-snippets/vue/Basic.vue)\n  - A basic example\n\n\r\n[](#demos-and-development)\r\n\r\n\r\n[](#demos-and-development)\r\n\r\n## Demos and Development\n\n\n### Repo Setup\n\nThe repo uses submodules. If you did not clone with ` --recursive` then you need to call\n```\ngit submodule update --init\n```\n\nThe package manager used to install and link dependencies must be `pnpm` or `yarn`. `npm` wont work.\n\nTo develop and test:\nif you use `yarn` then run `yarn`\nif you use `pnpm` then run `pnpm i`\n\n**Interactive Menu:**\n\nTo start the interactive menu, run `npm start` (or `yarn start` or `pnpm start`). This will list all of the commonly used scripts.\n\n### Build\n\n```bash\nnpm run build.all\n```\nWARNING: it seems `yarn build.all` wont always work (not finding binaries in `node_modules/.bin`) which is why the doc explicitly uses `npm run`\n\n### Demos\n\n```bash\nnpm run demo.[ng|react|svelte|vue].[ios|android]\n\nnpm run demo.svelte.ios # Example\n```\n\nDemo setup is a bit special in the sense that if you want to modify/add demos you dont work directly in `demo-[ng|react|svelte|vue]`\nInstead you work in `demo-snippets/[ng|react|svelte|vue]`\nYou can start from the `install.ts` of each flavor to see how to register new demos \n\n\r\n[](#contributing)\r\n\r\n\r\n[](#contributing)\r\n\r\n## Contributing\n\n### Update repo \n\nYou can update the repo files quite easily\n\nFirst update the submodules\n\n```bash\nnpm run update\n```\n\nThen commit the changes\nThen update common files\n\n```bash\nnpm run sync\n```\nThen you can run `yarn|pnpm`, commit changed files if any\n\n### Update readme \n```bash\nnpm run readme\n```\n\n### Update doc \n```bash\nnpm run doc\n```\n\n### Publish\n\nThe publishing is completely handled by `lerna` (you can add `-- --bump major` to force a major release)\nSimply run \n```shell\nnpm run publish\n```\n\n### modifying submodules\n\nThe repo uses https:// for submodules which means you won't be able to push directly into the submodules.\nOne easy solution is t modify `~/.gitconfig` and add\n```\n[url \"ssh://git@github.com/\"]\n\tpushInsteadOf = https://github.com/\n```\n\n\r\n[](#questions)\r\n\r\n\r\n[](#questions)\r\n\r\n## Questions\n\nIf you have any questions/issues/comments please feel free to create an issue or start a conversation in the [NativeScript Community Discord](https://nativescript.org/discord).\n\r\n[](#demos-and-development)\r\n\r\n## Demos and Development\n\n\n### Repo Setup\n\nThe repo uses submodules. If you did not clone with ` --recursive` then you need to call\n```\ngit submodule update --init\n```\n\nThe package manager used to install and link dependencies must be `pnpm` or `yarn`. `npm` wont work.\n\nTo develop and test:\nif you use `yarn` then run `yarn`\nif you use `pnpm` then run `pnpm i`\n\n**Interactive Menu:**\n\nTo start the interactive menu, run `npm start` (or `yarn start` or `pnpm start`). This will list all of the commonly used scripts.\n\n### Build\n\n```bash\nnpm run build.all\n```\nWARNING: it seems `yarn build.all` wont always work (not finding binaries in `node_modules/.bin`) which is why the doc explicitly uses `npm run`\n\n### Demos\n\n```bash\nnpm run demo.[ng|react|svelte|vue].[ios|android]\n\nnpm run demo.svelte.ios # Example\n```\n\nDemo setup is a bit special in the sense that if you want to modify/add demos you dont work directly in `demo-[ng|react|svelte|vue]`\nInstead you work in `demo-snippets/[ng|react|svelte|vue]`\nYou can start from the `install.ts` of each flavor to see how to register new demos \n\n\r\n[](#contributing)\r\n\r\n## Contributing\n\n### Update repo \n\nYou can update the repo files quite easily\n\nFirst update the submodules\n\n```bash\nnpm run update\n```\n\nThen commit the changes\nThen update common files\n\n```bash\nnpm run sync\n```\nThen you can run `yarn|pnpm`, commit changed files if any\n\n### Update readme \n```bash\nnpm run readme\n```\n\n### Update doc \n```bash\nnpm run doc\n```\n\n### Publish\n\nThe publishing is completely handled by `lerna` (you can add `-- --bump major` to force a major release)\nSimply run \n```shell\nnpm run publish\n```\n\n### modifying submodules\n\nThe repo uses https:// for submodules which means you won't be able to push directly into the submodules.\nOne easy solution is t modify `~/.gitconfig` and add\n```\n[url \"ssh://git@github.com/\"]\n\tpushInsteadOf = https://github.com/\n```\n\r\n[](#questions)\r\n\r\n## Questions\n\nIf you have any questions/issues/comments please feel free to create an issue or start a conversation in the [NativeScript Community Discord](https://nativescript.org/discord).","funding_links":["https://github.com/sponsors/farfromrefug"],"categories":["Plugins"],"sub_categories":["Networking Plugins"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript-community%2Fhttps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnativescript-community%2Fhttps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativescript-community%2Fhttps/lists"}