A zero-config toolkit for creating fine Forge apps

Overview

image




A zero-config toolkit for creating fine Forge apps.

Background

The Forge Dev Kit (FDK) is a preconfigured set of libraries and frameworks for developing apps for Atlassian Jira - and soon, Confluence - with ease. The FDK builds on Atlassian Forge, TypeScript, React, Emotion, Next.js, and the Atlassian Design System, plus a number of libraries to glue it all together.

FDK doesn't replace the standard Forge tooling; it instead simplifies the creation of Custom UI-based modules, which can then be used within any (new or existing) Forge app.

Getting started

Requirements

Before getting started, make sure that Forge is set up for development.

Creating your FDK module

Create a new FDK module by running

npx @finesoftware/forge-dev-kit create

In the wizard that follows, chose the Hello world template, and read through any instructions carefully.

Updating your Forge app

If you don't have a Forge app yet, create one using the Forge CLI.

In your Forge app's manifest.yml, find or create a new module, of a type that supports Forge's Custom UI (such as jira:projectPage). In the module's resources, point to the FDK module's out directory, like so:

modules:
+  jira:projectPage:
+    - key: hello-world
+      title: Hello world
+      resource: hello-world-resource

resources:
+  - key: hello-world-resource
+    path: ../hello-world/out

Also make sure that your manifest.yml includes the following permissions:

permissions:
+   content:
+       styles:
+         - 'unsafe-inline'
+       scripts:
+         - 'unsafe-eval'

Starting your Forge app

In your Forge app's base directory, run

forge deploy
forge install --upgrade

Voilà! You should now see your FDK-based Hello world app in action - in this case, using a module of type jira:projectPage:

Making your first change

To make a change to the Hello world module, open the module directory in an IDE of your choice (Visual Studio Code will work great), and navigate to the src/index.tsx file. This file is the entry point to your module. In src/index.tsx, you will see the React code behind Hello world. Make a small change to it - for example, change the h3 text, like so ...

- <h3>Fine Software Forge Dev Kit</h3>
+ <h3>G'day!</h3>

... or write any other valid React code. Just keep exporting a React component as the file's default export - that's expected and required by FDK.

Next, in the root directory of your module, run

yarn run generate

This will compile your code, and generate the static resources into the out directory.

Next, navigate to your Forge app's root folder, and run

forge deploy

When you reload Jira in your browser, you should now see your changes live.

Setting up your inner dev loop

You already deployed a change to your Forge app - well done! However, as you start making more comprehensive changes, you don't want to go through the hassle of generate + deploy all the time. Luckily, FDK plays well with Forge's tunneling capabilities.

First, in your module's root directory, run

yarn run dev

to start your module's next.js development server. By default, it is running on port 3000.

Next, navigate in your Forge app's manifest.yml, and modify your module resource definition, like so:

resources:
  - key: hello-world-resource
    path: ../hello-world/out
+   tunnel:
+     port: 3000

... where 3000 is the port that your dev server is running on.

Next, start your app in tunneling mode, using

forge tunnel

You can now go on to make further changes to your module, and simply reload Jira to view them live.

Guides



image

Comments
  • Update dependency zx to v6 - autoclosed

    Update dependency zx to v6 - autoclosed

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | zx | ^4.3.0 -> ^6.2.4 | age | adoption | passing | confidence |


    Release Notes

    google/zx

    v6.2.4

    Compare Source

    What's Changed

    Full Changelog: https://github.com/google/zx/compare/6.2.3...6.2.4

    v6.2.3

    Compare Source

    What's Changed

    Full Changelog: https://github.com/google/zx/compare/6.2.2...6.2.3

    v6.2.2

    Compare Source

    What's Changed

    Full Changelog: https://github.com/google/zx/compare/6.2.1...6.2.2

    v6.2.1

    Compare Source

    • Fixed $.verbose type.

    v6.2.0

    Compare Source

    This release adds async local contexts via ctx() and configurable logger.

    v6.1.0

    Compare Source

    This release contains updates of dependencies:

     minimist   ^1.2.5  →  ^1.2.6
     yaml      ^1.10.2  →  ^2.0.0
    

    v6.0.7

    Compare Source

    What's Changed

    Full Changelog: https://github.com/google/zx/compare/6.0.6...6.0.7

    v6.0.6

    Compare Source

    v6.0.5

    Compare Source

    v6.0.4

    Compare Source

    What's Changed

    Full Changelog: https://github.com/google/zx/compare/6.0.3...6.0.4

    v6.0.3

    Compare Source

    v6.0.1

    Compare Source

    v6.0.0

    Compare Source

    v5.3.0

    Compare Source

    What's Changed

    v5.2.0

    Compare Source

    72c8cf0 Added experimental startSpinner() function. 53a215e Added the signal field to ProcessOutput. bf88f50 Added quiet() function (#​313). 51fb6d5 Improved experemental echo()function.

    import {echo} from 'zx/experimental'
    
    // The echo() can be used both ways: 
    echo`Current branch is ${branch}.`
    // or
    echo('Current branch is', branch)
    
    import {startSpinner} from 'zx/experimental'
    
    let stop = startSpinner()
    await $`long-running command`
    stop()
    
    let p = nothrow($`while true; do :; done`)
    setTimeout(() => p.kill('SIGKILL'), 1000)
    let {signal} = await p
    assert.equal(signal, 'SIGKILL')
    
    await quiet($`grep something from-file`)
    // Command and output will not be displayed.
    

    v5.1.0

    Compare Source

    98a9abb Added new experimental retry & echo functions. f8bb1c7 Fixed bug where running script without extension removes existing .mjs files (#​276). 792370a Increased maxBuffer to 200 MiB. 7fafa26 Added known issues doc.

    Example:

    import {echo, retry} from 'zx/experimental'
    
    let branch = await $`git branch --show-current`
    echo`Current branch is ${branch}.`
    
    let {stdout} = await retry(5)`curl localhost`
    

    v5.0.0

    Compare Source

       __/\\\\\\\\\\\__/\\\____/\\\_     
        _\///////\\\/__\///\\\/\\\/__    
         ______/\\\/______\///\\\/____   
          ____/\\\/_________/\\\/\\\___  
           __/\\\\\\\\\\\__/\\\/\///\\\_ 
            _\///////////__\///____\///__
    

    Updated dependencies

     chalk               ^4.1.2  →   ^5.0.0
     globby             ^12.0.1  →  ^13.1.1
     node-fetch          ^2.6.1  →   ^3.2.0
    

    Added feature

    Added YAML package.

    let {foo} = YAML.parse('foo: bar')
    

    Breaking changes

    This release drops build of CommonJS version and support for .ts extension by zx bin.

    TypeScript is still supported, for example, via ts-node:

    node --loader ts-node/esm script.ts
    

    Also, a new Node version requirement is >= 16.0.0.


    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency type-fest to ^2.12.2

    Update dependency type-fest to ^2.12.2

    WhiteSource Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | type-fest | ^2.12.1 -> ^2.12.2 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: "on friday" (UTC).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by WhiteSource Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Using dev-kit outside of Forge by decoupling @forge/bridge and @finesoftware/forge-jira-api

    Using dev-kit outside of Forge by decoupling @forge/bridge and @finesoftware/forge-jira-api

    Hello!

    Not really an issue, more of a discussion starter. 😄 I recently watched your talk on YouTube.

    It would be nice if we could also use this outside of Forge. For example, I'm building a SaaS app that will also connect to JIRA and this repo seems to contain everything I need to simplify this process, thanks to you guys.

    And, at first glance, from what I understand from the code, is that your react hooks and the underlying methods used to make the API calls to communicate with the Atlassian servers, use the @forge/bridge package from which it imports a requestJira method which is basically just a wrapper around fetch, probably to manage request headers, tokens, etc.

    If we could decouple @forge/bridge and @finesoftware/forge-jira-api and simply use a composition pattern that allows to pass requestJira OR our own "custom" fetch to, for example, a Provider instead, or to a factory function used for configuration, it would make it possible to use this dev kit outside of Forge.

    My next.js app (running next-auth) would acquire an access_token via an Oauth flow and simply attach that access_token to every fetch requests sent to the JIRA servers.

    Is this something you guys would be open to?

    Screen Shot 2022-07-09 at 19 56 49
    opened by gablabelle 0
  • Update dependency type-fest to ^2.19.0

    Update dependency type-fest to ^2.19.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | type-fest | ^2.12.2 -> ^2.19.0 | age | adoption | passing | confidence |


    Release Notes

    sindresorhus/type-fest

    v2.19.0

    Compare Source

    New types
    Improvements

    v2.18.1

    Compare Source

    v2.18.0

    Compare Source

    New types

    v2.17.0

    Compare Source

    v2.16.0

    Compare Source

    New types
    Improvements
    Fixes
    • Replace: Fix the all option (#​416) 1483de3
    • Includes: Fix false-positive when the array contains null and you are checking against undefined (#​413) de5e7fc
    • Simplify: Fix handling of some types (#​414) 96fe795

    v2.15.1

    Compare Source

    v2.15.0

    Compare Source

    v2.14.0

    Compare Source

    v2.13.1

    Compare Source

    v2.13.0

    Compare Source

    New types
    Improvements
    • Rename Mutable to Writable (#​398) 638d597
      • Mutable still works and is now just a deprecated alias.
    Fixes
    • Fix deep properties of PackageJson and TsConfigJson (#​269) f2aae51

    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency ts-node to ^10.9.1

    Update dependency ts-node to ^10.9.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | ts-node (source) | ^10.7.0 -> ^10.9.1 | age | adoption | passing | confidence |


    Release Notes

    TypeStrong/ts-node

    v10.9.1

    Compare Source

    Fixed

    • Workaround nodejs bug introduced in 18.6.0 (#​1838) @​cspotcode
      • Only affects projects on node >=18.6.0 using --esm
      • Older versions of node and projects without --esm are unaffected

    https://github.com/TypeStrong/ts-node/milestone/18?closed=1

    v10.9.0

    Compare Source

    Added

    • --project accepts path to a directory containing a tsconfig.json (#​1829, #​1830) @​cspotcode
      • previously it required an explicit filename
    • Added helpful error message when swc version is too old to support our configuration (#​1802) @​cspotcode
    • Added experimentalTsImportSpecifiers option which allows using voluntary .ts file extensions in import specifiers (undocumented except for API docs) (#​1815) @​cspotcode

    Fixed

    https://github.com/TypeStrong/ts-node/milestone/16?closed=1

    v10.8.2

    Compare Source

    Fixed

    • Revert "Use file URL for source map paths" (#​1821) @​cspotcode
      • Fixes #​1790: ts-node 10.8.1 regression where nyc code coverage reports had incorrect paths
      • Fixes #​1797: ts-node 10.8.1 regression where breakpoints did not hit in VSCode debugging
    • Allow JSON imports in node 16.15 and up (#​1792) @​queengooborg
      • JSON imports were already supported in v17.5 and up
      • this change extends support to >=16.15.0,<17.0.0
      • These version ranges match vanilla node's support for JSON imports

    https://github.com/TypeStrong/ts-node/milestone/15?closed=1

    v10.8.1

    Compare Source

    Fixed

    https://github.com/TypeStrong/ts-node/milestone/14

    v10.8.0

    Compare Source

    Questions about this release? Ask in the official discussion thread: #​1767

    Added

    • Added support for module=NodeNext, module=Node16, .mts, .cts, .mjs, and .cjs file extensions (#​1414, #​1694, #​1744, #​1745, #​1727, #​1717, #​1753, #​1757) @​cspotcode
      • For best results, enable experimentalResolver (docs)
      • See TypeScript's official documentation: https://www.typescriptlang.org/docs/handbook/esm-node.html
      • enables mixed-mode projects with both ESM and CommonJS
      • enables all supported file extensions in TypeScript 4.7
      • Obeys package.json "type"
    • Added ability to include file extensions in CommonJS imports (#​1727, #​1753) @​cspotcode
      • Enables consistency with ESM, where file extensions are often mandatory
    • Resolves from emitted to source file extensions (#​1727, #​1753) @​cspotcode
      • Must enable experimentalResolver, will be enabled by default in a future version (docs)
      • Typechecker requires importing the emitted file extension; ts-node resolves correctly to the source file. E.g. import "./foo.js" will execute foo.ts See also: TypeScript issue #​37582
      • If typechecking is disabled, you can also use source file extensions. E.g. import "./foo.ts"
    • Added experimentalSpecifierResolution (#​1727, #​1753) @​cspotcode
      • the same as Node's --experimental-specifier-resolution (Node docs)
      • can also be specified in tsconfig.json for convenience, to avoid the CLI flag
      • allows omitting file extensions in ESM imports, plus a few other CommonJS-style conveniences
    • Adds diagnostics property to TSError, with array of TypeScript diagnostic objects from the compiler (API docs) (#​1705, #​1706) @​paulbrimicombe

    Changed

    Fixed

    Docs

    https://github.com/TypeStrong/ts-node/milestone/12


    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency @babel/preset-react to ^7.18.6

    Update dependency @babel/preset-react to ^7.18.6

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @babel/preset-react (source) | ^7.16.7 -> ^7.18.6 | age | adoption | passing | confidence |


    Release Notes

    babel/babel

    v7.18.6

    Compare Source

    :eyeglasses: Spec Compliance
    :bug: Bug Fix
    • babel-helper-remap-async-to-generator, babel-plugin-proposal-async-generator-functions
    • babel-plugin-transform-parameters
    • babel-core
    • babel-core, babel-helper-check-duplicate-nodes, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-optional-chaining, babel-plugin-transform-runtime
    :house: Internal
    • babel-standalone
    • Other
    • babel-generator, babel-types
    • babel-code-frame, babel-core, babel-generator, babel-helper-annotate-as-pure, babel-helper-builder-binary-assignment-operator-visitor, babel-helper-builder-react-jsx, babel-helper-check-duplicate-nodes, babel-helper-compilation-targets, babel-helper-create-class-features-plugin, babel-helper-create-regexp-features-plugin, babel-helper-define-map, babel-helper-explode-assignable-expression, babel-helper-fixtures, babel-helper-function-name, babel-helper-hoist-variables, babel-helper-member-expression-to-functions, babel-helper-module-imports, babel-helper-module-transforms, babel-helper-optimise-call-expression, babel-helper-plugin-test-runner, babel-helper-plugin-utils, babel-helper-remap-async-to-generator, babel-helper-replace-supers, babel-helper-simple-access, babel-helper-split-export-declaration, babel-helper-transform-fixture-test-runner, babel-helper-validator-option, babel-helper-wrap-function, babel-helpers, babel-highlight, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-external-helpers, babel-plugin-proposal-async-generator-functions, babel-plugin-proposal-class-static-block, babel-plugin-proposal-decorators, babel-plugin-proposal-destructuring-private, babel-plugin-proposal-function-bind, babel-plugin-proposal-function-sent, babel-plugin-proposal-json-strings, babel-plugin-proposal-object-rest-spread, babel-plugin-proposal-optional-chaining, babel-plugin-proposal-partial-application, babel-plugin-proposal-pipeline-operator, babel-plugin-proposal-private-property-in-object, babel-plugin-proposal-record-and-tuple, babel-plugin-syntax-typescript, babel-plugin-transform-block-scoped-functions, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-computed-properties, babel-plugin-transform-destructuring, babel-plugin-transform-duplicate-keys, babel-plugin-transform-exponentiation-operator, babel-plugin-transform-flow-comments, babel-plugin-transform-flow-strip-types, babel-plugin-transform-for-of, babel-plugin-transform-function-name, babel-plugin-transform-modules-amd, babel-plugin-transform-modules-commonjs, babel-plugin-transform-modules-systemjs, babel-plugin-transform-modules-umd, babel-plugin-transform-object-super, babel-plugin-transform-parameters, babel-plugin-transform-property-mutators, babel-plugin-transform-proto-to-assign, babel-plugin-transform-react-constant-elements, babel-plugin-transform-react-display-name, babel-plugin-transform-react-inline-elements, babel-plugin-transform-react-jsx-compat, babel-plugin-transform-react-jsx-source, babel-plugin-transform-react-jsx, babel-plugin-transform-runtime, babel-plugin-transform-typescript, babel-plugin-transform-unicode-escapes, babel-preset-env, babel-preset-typescript, babel-standalone, babel-template, babel-traverse, babel-types
    • babel-core, babel-helper-transform-fixture-test-runner, babel-plugin-transform-destructuring

    v7.17.12

    Compare Source

    :bug: Bug Fix
    • babel-plugin-transform-react-constant-elements
    • babel-generator
    • babel-plugin-transform-destructuring
    • babel-parser
    • babel-parser, babel-plugin-transform-destructuring, babel-types
    :house: Internal
    • babel-plugin-proposal-decorators, babel-types
    • babel-core
    • babel-core, babel-generator, babel-helper-create-class-features-plugin, babel-helper-create-regexp-features-plugin, babel-helper-module-transforms, babel-helper-plugin-utils, babel-parser, babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression, babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining, babel-plugin-external-helpers, babel-plugin-proposal-async-do-expressions, babel-plugin-proposal-async-generator-functions, babel-plugin-proposal-class-properties, babel-plugin-proposal-class-static-block, babel-plugin-proposal-decorators, babel-plugin-proposal-export-default-from, babel-plugin-proposal-export-namespace-from, babel-plugin-proposal-function-sent, babel-plugin-proposal-json-strings, babel-plugin-proposal-logical-assignment-operators, babel-plugin-proposal-nullish-coalescing-operator, babel-plugin-proposal-object-rest-spread, babel-plugin-proposal-optional-chaining, babel-plugin-proposal-partial-application, babel-plugin-proposal-pipeline-operator, babel-plugin-proposal-private-methods, babel-plugin-proposal-private-property-in-object, babel-plugin-proposal-record-and-tuple, babel-plugin-proposal-unicode-property-regex, babel-plugin-syntax-decorators, babel-plugin-syntax-destructuring-private, babel-plugin-syntax-flow, babel-plugin-syntax-import-assertions, babel-plugin-syntax-pipeline-operator, babel-plugin-syntax-record-and-tuple, babel-plugin-syntax-typescript, babel-plugin-transform-arrow-functions, babel-plugin-transform-async-to-generator, babel-plugin-transform-block-scoping, babel-plugin-transform-classes, babel-plugin-transform-computed-properties, babel-plugin-transform-destructuring, babel-plugin-transform-duplicate-keys, babel-plugin-transform-flow-comments, babel-plugin-transform-flow-strip-types, babel-plugin-transform-for-of, babel-plugin-transform-instanceof, babel-plugin-transform-jscript, babel-plugin-transform-literals, babel-plugin-transform-modules-amd, babel-plugin-transform-modules-commonjs, babel-plugin-transform-modules-systemjs, babel-plugin-transform-modules-umd, babel-plugin-transform-named-capturing-groups-regex, babel-plugin-transform-new-target, babel-plugin-transform-parameters, babel-plugin-transform-property-mutators, babel-plugin-transform-proto-to-assign, babel-plugin-transform-react-constant-elements, babel-plugin-transform-react-jsx, babel-plugin-transform-reserved-words, babel-plugin-transform-runtime, babel-plugin-transform-spread, babel-plugin-transform-template-literals, babel-plugin-transform-typeof-symbol, babel-plugin-transform-typescript, babel-preset-env, babel-preset-flow, babel-preset-react, babel-preset-typescript, babel-traverse, babel-types

    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency @forge/bridge to ^2.4.0

    Update dependency @forge/bridge to ^2.4.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @​forge/bridge | ^2.2.0 -> ^2.4.0 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency typescript to ^4.9.3

    Update dependency typescript to ^4.9.3

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | typescript (source) | ^4.6.3 -> ^4.9.3 | age | adoption | passing | confidence |


    Release Notes

    Microsoft/TypeScript

    v4.9.3: TypeScript 4.9

    Compare Source

    For release notes, check out the release announcement.

    Downloads are available on:

    Changes:
    See More

    This list of changes was auto generated.

    v4.8.4: TypeScript 4.8.4

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    v4.8.3: TypeScript 4.8.3

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    v4.8.2: TypeScript 4.8

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    Downloads are available on:

    v4.7.4: TypeScript 4.7.4

    Compare Source

    For release notes, check out the release announcement.

    For the complete list of fixed issues, check out the

    • [fixed issues query for Typescript 4.7.0 (Beta)](https://togithub.com/microsoft/TypeScript/issues

    Configuration

    📅 Schedule: Branch creation - "on friday" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
Owner
Fine Software
Our team's passion is to craft beautiful software that really helps you get your job done.
Fine Software
Expo Config Plugin that generates an App Clip for iOS apps built with Expo.

react-native-app-clip Expo Config Plugin that generates an App Clip for iOS apps built with Expo. Warning This plugin is a work in progress and hasn’t

Benedikt 186 Dec 24, 2022
Vtexio-react-apps - Apps react para plafaforma VTEX.

Projeto Modal + Apps Extras Projeto modal setando cookies. Desenvolvido em React + TypeScript para aplicação em e-commerce VTEXIO. ?? Este projeto se

Marcelo 1 Jan 3, 2022
The Power CAT code components are a set of Power Apps component framework (PCF) controls that can be used to enhance power apps.

Power CAT code components The Power CAT code components are a set of Power Apps component framework (PCF) controls that can be used to enhance power a

Microsoft 70 Jan 2, 2023
A React-based UI toolkit for the web

Blueprint Blueprint is a React-based UI toolkit for the web. It is optimized for building complex, data-dense web interfaces for desktop applications

Palantir Technologies 19.5k Jan 3, 2023
Boilerplate for Truffle, Web3.js, React, Redux Toolkit

Truffle, React, Redux Toolkit, Web3.js boilerplate What it's for Currently, it's a nightmare and takes forever trying to get React working with Truffl

Adrian Delgado Ξ 29 Jun 9, 2022
Redux-Toolkit example with React Hooks CRUD Application, Axios, Rest API, Bootstrap

Redux-Toolkit CRUD example with React Hooks, Axios & Web API Build Redux-Toolkit CRUD application with React Hooks and Rest API calls in that: Each it

null 69 Dec 27, 2022
A web application to search all the different countries in the world and get details about them which can include languages, currencies, population, domain e.t.c This application is built with CSS, React, Redux-Toolkit and React-Router.

A web application to search all the different countries in the world and get details about them which can include languages, currencies, population, domain e.t.c This application is built with CSS, React, Redux-Toolkit and React-Router. It also includes a theme switcher from light to dark mode.

Franklin Okolie 4 Jun 5, 2022
A React Native starter template project with built-in navigation & redux toolkit.

react-native-template A React Native starter template project with built-in navigation & redux toolkit. What's included? @react-native-async-storage/a

Manish Bista 8 Oct 29, 2022
Your toolkit for financially sustainable open source development

Your toolkit for financially sustainable open source development. Getting Started · Why? · Plans · Documentation · Contributing Description Open sourc

KickJump 4 Feb 12, 2022
A URL shortener that has zero limits for all your needs

?? GunRecoil A URL shortener that has zero limits for all your needs Demo Link GunRecoil Screenshots Features FREE Unlimited url shortening Roadmap De

null 9 Oct 1, 2022
An interactive CLI automation tool 🛠️ for creating react.js and next.js projects most fast and efficiently. ⚛️

An interactive CLI automation tool ??️ for creating react.js and next.js projects most fast and efficiently. ⚛️ About ℹ️ ReexJs CLI is an interactive

Alexis Guzman 27 Apr 12, 2022
Creating this clone to learn the fundamentals of Next Js and Tailwind CSS.

Next.js + Tailwind CSS Example This example shows how to use Tailwind CSS (v3.0) with Next.js. It follows the steps outlined in the official Tailwind

Premveer Tomar 2 Feb 2, 2022
React components and hooks for creating VR/AR applications with @react-three/fiber

@react-three/xr React components and hooks for creating VR/AR applications with @react-three/fiber npm install @react-three/xr These demos are real,

Poimandres 1.4k Jan 4, 2023
Mason.js for creating a perfect grid with jQuery.

MasonJS Mason.js is a jQuery plugin that allows you to create a perfect grid of elements. This is not Masonry, or Isotope or Gridalicious. Mason fills

Drew Dahlman 1.2k Nov 19, 2022
Build blazing fast, modern apps and websites with React

Gatsby v3 ⚛️ ?? ?? Fast in every way that matters Gatsby is a free and open source framework based on React that helps developers build blazing fast w

Gatsby 54k Jan 9, 2023
🌈 React for interactive command-line apps

React for CLIs. Build and test your CLI output using components. Ink provides the same component-based UI building experience that React offers in the

Vadim Demedes 19.7k Jan 3, 2023
Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.

Recoil · Recoil is an experimental set of utilities for state management with React. Please see the website: https://recoiljs.org Installation The Rec

Facebook Experimental 18.2k Jan 8, 2023
Mobile app development framework and SDK using HTML5 and JavaScript. Create beautiful and performant cross-platform mobile apps. Based on Web Components, and provides bindings for Angular 1, 2, React and Vue.js.

Onsen UI - Cross-Platform Hybrid App and PWA Framework Onsen UI is an open source framework that makes it easy to create native-feeling Progressive We

null 8.7k Jan 8, 2023
A collection of sample apps built using GetStream and React Native

React Native samples [ Built with ♥ at Stream ] This repo contains projects and samples developed by the team and Stream community, using React Native

Stream 93 Jan 8, 2023