Detalhes do pacote

@jigra/cli

familyjs165MIT6.1.2

Jigra: Cross-platform apps with JavaScript and the web

family, family framework, jigra, universal app

readme (leia-me)

Jigra

⚡️ Cross-platform apps with JavaScript and the Web ⚡️

Jigra lets you run web apps natively on iOS, Android, Web, and more with a single codebase and cross-platform APIs.

Jigra provides a cross-platform API and code execution layer that makes it easy to call Native SDKs from web code and to write custom native plugins that your app may need. Additionally, Jigra provides first-class Progressive Web App support so you can write one app and deploy it to the app stores and the mobile web.

Jigra comes with a Plugin API for building native plugins. Plugins can be written inside Jigra apps or packaged into an npm dependency for community use. Plugin authors are encouraged to use Swift to develop plugins in iOS and Kotlin (or Java) in Android.

Getting Started

Jigra was designed to drop-in to any existing modern web app. Run the following commands to initialize Jigra in your app:

npm install @jigra/core @jigra/cli
npx jig init

Next, install any of the desired native platforms:

npm install @jigra/android
npx jig add android
npm install @jigra/ios
npx jig add ios

New App?

For new apps, we recommend trying the Family Framework with Jigra.

To begin, install the Family CLI (npm install -g @familyjs/cli) and start a new app:

family start --jigra

FAQ

What are the differences between Jigra and Cordova?

In spirit, Jigra and Cordova are very similar. Jigra offers backward compatibility with a vast majority of Cordova plugins.

Jigra and Cordova differ in that Jigra:

  • takes a more modern approach to tooling and plugin development
  • treats native projects as source artifacts as opposed to build artifacts
  • is maintained by the Family Team 💙

See the docs for more details.

Do I need to use Family Framework with Jigra?

No, you do not need to use Family Framework with Jigra. Without the Family Framework, you may need to implement Native UI yourself. Without the Family CLI, you may need to configure tooling yourself to enable features such as livereload. See the docs for more details.

Contributing

See CONTRIBUTING.md.

changelog (log de mudanças)

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

6.1.2 (2024-11-07)

Bug Fixes

  • android: better cleaning of allowedOrigin url (22129bc)
  • http: pass original url as query param on the proxy url (cf28344)
  • support dependencies with .swift at the end of name (cc089a8)

6.1.1 (2024-11-07)

Bug Fixes

  • android: Allow WebView to load blob urls (5ed5b31)
  • android: javascript injection not working on urls with query (08cf71a)
  • android: send FormData on older devices (16f16e3)
  • android: UTF-8 encode form data value (bcca076)
  • cli: enable cleartext for live reload (41f9a00)
  • http: handle UInt8Array on body and run fmt (d3d9daa)
  • ios: make removeAllListeners accessible from javascript (f3a7f44)
  • ios: Match JigApp-SPM iOS version with project version (95ee987)

6.1.0 (2024-09-20)

Bug Fixes

  • android: avoid crash if server url ends in / (6f7e9fd)
  • cli: Avoid duplicate entries in packageClassList (70c3ac7)
  • cli: Don't downgrade variables on migrate (7e39411)
  • cli: Run sync before updating gradle (f85a928)
  • http: don't override readyState for non POST requests (c6ccf8f)
  • ios: check if urlSchemeTask is stopped before calling its methods (07c0cb0)

Features

  • cli: run plugin hooks (1cc8879)
  • ios: JIGPluginMethod selector-based initializer (fcfbd87)

6.0.0 (2024-06-28)

Note: Version bump only for package jigra

6.0.0-alpha.2 (2024-06-28)

Note: Version bump only for package jigra

6.0.0-alpha.1 (2024-06-28)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • cli: Removing extra dash in android apk name flavor parsing (1246a58)
  • http: Add URLSearchParams support (abf7fd2)
  • http: change proxy url generation (683cf14)
  • http: don't override readyState for non POST requests (1e90edf)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: prevent POST request from being proxied (bcbea41)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: check if urlSchemeTask is stopped before calling its methods (2d1c6db)
  • ios: overwrite CORS headers on livereload (c7d464a)
  • kdu 3 log warning causes error on iOS (f67799d)

5.7.8 (2024-06-26)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • cli: Removing extra dash in android apk name flavor parsing (1246a58)
  • http: Add URLSearchParams support (abf7fd2)
  • http: change proxy url generation (683cf14)
  • http: don't override readyState for non POST requests (1e90edf)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: prevent POST request from being proxied (bcbea41)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: check if urlSchemeTask is stopped before calling its methods (2d1c6db)
  • ios: overwrite CORS headers on livereload (c7d464a)
  • kdu 3 log warning causes error on iOS (f67799d)

5.7.7 (2024-06-25)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • cli: Removing extra dash in android apk name flavor parsing (1246a58)
  • http: Add URLSearchParams support (abf7fd2)
  • http: change proxy url generation (683cf14)
  • http: don't override readyState for non POST requests (1e90edf)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: prevent POST request from being proxied (bcbea41)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: check if urlSchemeTask is stopped before calling its methods (2d1c6db)
  • ios: overwrite CORS headers on livereload (c7d464a)
  • kdu 3 log warning causes error on iOS (f67799d)

5.7.6 (2024-06-23)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • cli: Removing extra dash in android apk name flavor parsing (1246a58)
  • http: Add URLSearchParams support (abf7fd2)
  • http: change proxy url generation (683cf14)
  • http: don't override readyState for non POST requests (1e90edf)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: prevent POST request from being proxied (bcbea41)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: check if urlSchemeTask is stopped before calling its methods (2d1c6db)
  • ios: overwrite CORS headers on livereload (c7d464a)
  • kdu 3 log warning causes error on iOS (f67799d)

5.7.5 (2024-06-23)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • cli: Removing extra dash in android apk name flavor parsing (1246a58)
  • http: Add URLSearchParams support (abf7fd2)
  • http: change proxy url generation (683cf14)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: prevent POST request from being proxied (bcbea41)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: overwrite CORS headers on livereload (c7d464a)
  • kdu 3 log warning causes error on iOS (f67799d)

5.7.4 (2024-06-22)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • http: change proxy url generation (683cf14)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: overwrite CORS headers on livereload (c7d464a)

5.7.3 (2024-06-22)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: apkName for multi-dimensional flavors (3d374df)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • http: handle proxy urls with port (f496849)
  • http: keep original URL properties on proxy (a4df88d)
  • http: Make proxy work with Request objects (16c2d4e)
  • http: route get requests through custom handler (7599e02)
  • http: set port for proxy url (a5d3693)
  • ios: overwrite CORS headers on livereload (c7d464a)

5.7.2 (2024-06-22)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • android: prevent crash on script injection if the script is too long (30e0f71)
  • cli: Attempt to verify non-cjs modules exist if cjs resolution fails (bab2ef5)
  • cli: correct build path for non flavor builds (5291ab0)
  • http: handle proxy urls with port (f496849)
  • http: route get requests through custom handler (7599e02)

5.7.1 (2024-06-21)

Bug Fixes

  • android: handle http errors on the proxy (dd39a96)
  • android: incorrect http url params encoding (62f4281)
  • android: let WebView handle errors (790d5d0)
  • android: make JSInjector replace first <head> only (e5cce4d)
  • cli: correct build path for non flavor builds (5291ab0)
  • http: handle proxy urls with port (f496849)
  • http: route get requests through custom handler (7599e02)

5.7.0 (2024-06-21)

Note: Version bump only for package jigra

5.7.0-alpha.1 (2024-06-21)

Note: Version bump only for package jigra

5.0.5 (2024-04-22)

Bug Fixes

  • http: don't throw errors when content-type is null on response (1300a25)

5.0.4 (2023-06-03)

Bug Fixes

  • cicd: removed to allow job to continue (d064e2f)
  • cli: correct migration of package from AndroidManifest.xml to build.gradle (0e29d42)
  • cli: Don't succeed migration if npm install failed (3efa3b9)
  • cli: proper plugin module patch in monorepos (cd51abd)

5.0.3 (2023-06-03)

Note: Version bump only for package jigra

5.0.2 (2023-06-03)

Bug Fixes

  • cli: handle unrecognized java --version (82d68a1)
  • cli: Move package to build.gradle in Jigra plugins (daf4d9d)
  • fallback to plain if does not contain CocoaPods (a0677c0)

5.0.1 (2023-06-03)

Bug Fixes

  • cli: install minor Jigra 5 version (1c166c5)
  • cli: Update migration link (98d019d)

5.0.0 (2023-05-22)

Note: Version bump only for package jigra

4.0.0 (2023-01-16)

Bug Fixes

  • android: added ServerPath object and building options for setting initial load from portals (5049599)

Features

  • cli: backports secure live updates support with portals for jigra to 3.x (25d2a5a)

3.9.0 (2023-01-10)

Bug Fixes

  • android: added ServerPath object and building options for setting initial load from portals (5049599)

Features

  • cli: backports secure live updates support with portals for jigra to 3.x (25d2a5a)

3.8.0 (2023-01-10)

Features

  • ios: Add setServerBasePath(_:) to JIGBridgeProtocol (73d9bff)

3.7.1 (2023-01-10)

Note: Version bump only for package jigra

3.7.0-rc.1 (2022-08-17)

Note: Version bump only for package jigra