Skip to content

Commit dc35482

Browse files
dackers86Ehespjhuleatt
authored
release(*): internal release candidate (2025-10-02) (#1214)
* fix(shadcn): Add registry name (bb-46) * fix(shadcn): Catch MFA assertion errors in sign up form * chore: Sync lock file * chore: Skip linting for generated code * chore(shadcn): added public images to example * fix(react): Fix tests by using separate schema + waitFor async submissions * chore(shadn): updated shadcn app to include shadcn components * feat(shadcn): Ensure MFA Assertion credential is propagated * chore: Update example app * refactor(*): Make error text generic for use outside of forms * chore(*): re-added package shadcn components * chore: Fix example internal links * fix(shadcn): updated refeences to use the /r namespace. Components regenerated * fix(*): resolved merge conflict errors * fix(react,angular): Prevent double form validation errors * chore(core): release package * chore(*): updated shad example app deps and home page * fix(core): Prevent email link sign in completion from double error handling * fix(shadcn): Ensure test waits for event using waitFor * fix(react,angular): Ensure SMS MFA Assertion uses correct form schema * chore(shadcn): added deploy script for hosting * chore(shadcn): updated screen redirects * fix(shadcn): ensure hooks use the current user * chore(shadcn): updated client id for onetap in test app * chore: Update example app * feat(shadcn): Update shadcn component styling * fix(shadcn): fixed typo in main tsx example * fix(react): Fix React dark mode variant * chore(*): release packages * feat(react): MFA Assertion Screen * fix(translations): Sign in with X (vs Twitter) text * feat(shadcn): Add MFA Assertion screen * fix(react,shadcn): onBackToSignIn -> onSignInClick * fix(react): Add missing exports * fix(*): Add MFA Assertion prompt * fix(*): Add mfaTotpQrCodePrompt translation * fix(react): Add back arrow for forgot password form * fix(shadcn): updated mfa assertion form re-render * chore(*): regen shadcn components * chore(shadcn): regn components * chore(*): release packages * fix(*): updated react package deps * chore(*): ran formatting * chore(*): eslint updates * feat(shadcn): added onsuccess to mfa assertion form * fix(shadcn): updated test imports to Invertase * fix(react): updated test imports to Invertase * chore(*): release packages * chore(*): pre-publish script updates * fix(*): improve packae build order * chore: Update shadcn example vs registry deployment * chore: Fix shadcn example build script * chore(*): updated nextjs ssg example * chore(*): regenerate lockfile * fix(*): added multi-platform support for register version * fix(shadcn): Remove duplicate display name field (bb-64) * chore(*): added nextjs ssr example * chore(*): upgraded react example app to the latets packages * chore(*): add deploy:all script * fix(react): Correctly throw when no context is found (bb-63) * chore: Update repos with correct npm namespace * chore: Update example * chore(*): ran format and linting * chore(*): updated next example app to new test project * fix(core): Depend on workspace translations * fix(translations): Update translation text to be less specific * chore: lock file regen * chore(*): fixed linting * chore(react): updated example app to use latest packages * fix(translations): Add invalid credential translations * chore(*): regen lock files * fix(react): Add descriptiont to SMS MFA verification * fix(shadcn): Add SMS description to form * feat(react): Add TOTP description improve layout * fix(*): removed redundant useEffects * feat(shadcn): Add secret key to TOTP enrollment * chore(*): release packages * fix(react,shadcn): Add descriptions to MFA flows * chore(react): Remove redundant api * chore(react): updated deploy config for nextjs-ssg * feat(react,shadcn): Add useMultiFactorAssertionCleanup utility hook * chore(*): fixed linting and test errors * chore: Add pirate locale to react example * chore(*): fixed test errors * chore(*): regenrate lock file * chore: Sync shadc components + add pirate mode * chore(*): updated nextjs-ssr config * fix(react,shadcn): Add description to SMS verification code input * chore: Formatting * chore: Fix failing shad test with otp delay * chore: Add line sign in button to examples * chore: Add react line css * chore(nextjs): updated hosting for nextjs-ssr * chore(*) ran linting & formatting * feat(angular): Add MFA assertion screen * fix(angular): Remove redirect error from forgot password * fix(angular): Align MFA Assertion screen * fix(angular): Align MFA enrollment screen * fix(angular): Sync phone auth screen * fix(angular): Align sign in screen * fix(angular): Align sign up screen * feat(angular): Add input form description * fix(angular): Align email link form * fix(angular): Align forgot password form * fix(angular): Align MFA assertion form * fix(angular): Align MFA enrollment form * fix(angular): Align phone auth form * fix(angular): Align sign in form * fix(angular): Align sign up form * fix(angular): Align SMS MFA assertion form * fix(angular): Align SMS MFA Enrollment form * fix(angular): Align TOTP MFA assertion form * fix(angular): Align TOTP MFA enrollment form * chore: linting * fix(angular): Align oauth button * chore: Run formatting * fix(angular): Add missing exports * chore: Update angular example styling * fix(angular): Forms use input event emitter to handle conditional rendering * refactor(angular): Set components to host block by default * fix(angular): Add dependency array + recaptcha SSR check * fix(angular): Update country code option tracking * fix(angular): Minor UI tweaks * chore(angular): Add redirect handlers to example app * chore: Formatting * fix(angular): Update tests with latest changes * chore: Add banner * wip readme docs * - * add shadcn reference * - * add core docs * add reference api * - * - * fix(react): Statically replace import.meta.env at build time * fix(core): Statically compile import.meta * chore(*): release packages * chore(): regenerate package lock * chore(angular): updated hosting configuration * chore(angular): upgraded firebase hosting to SSR * chore(*): updated deployment script for example apps * chore(*): updated deploy config, cleanup root npm scripts * chore(*): cleaned releases folder * chore(*): updated firebase json for shadcn * chore(*): further script cleanup * fix(ci): enable webframeworks * fix(core, react): added optional chaining for usage stats check * chore(nextjs): updated sample app to new styling * chore(nextjs): updated styling for nexts ssr example app * fix(core): Use popup sign in as the default behavior * update default strategy * chore(*): ran formatting and linting * feat(react): add onSignIn callback to oauth buttons * feat(shadcn): add oauth button onSignIn prop * feat(angular): add oauth button signIn output signal * chore: formatting * feat(react): add useOnUserAuthenticated hook and screen implementations * feat(shadcn): implement useOnUserAuthenticated into screens * chore: fix bad type * feat(angular): add injectUserAuthenticated provider * chore: Update shadcn example * chore: formatting * chore: update readme * chore: update readme * chore: Add license headers * chore: Add core code docs * chore: Add react jsdocs * chore: Add jsdoc to translations * chore: Add angular jsdocs * chore: Update CONTRIBUTING.md * chore: Update CONTRIBUTING.md (#1268) * chore: Add migration and contributing reference to README.md * feat(shadcn): add build workflow (#1269) Co-authored-by: Darren Ackers <[email protected]> * chore(*): resolved conflicts * chore(*): lint and formatting and package regen * fix(*): updated additional npm references * fix(angular): updated package dist exports * add cloud build config * publish to beta tag * add cloud logging option * fix publish script * turn off pnpm git checks, they were causing the CI publish to fail * bump versions for continued testing * chore: change shadcn to firebaseopensource.com (#1278) * set version and tag dynamically based on tag or commit * document the release process * pass Cloud Build substitutions to publish.sh * remove dry run publish flag * explicitly set access to public, since the default access level for scoped packages is restricted * run npm pkg fix on shadcn package json after publish errors * build seems to generate .mjs, not .js * never mind on the mjs thing? * small change just to re-trigger CI * publish a new beta tag version of shadcn for testing * switch to pnpm publish * fix "Command "version" not found" from pnpm * fix(angular): added angular version for usage statistics tracking * fix(shadcn): updated shadcn example registry to firebaseopensource.com --------- Co-authored-by: Elliot Hesp <[email protected]> Co-authored-by: Jeff Huleatt <[email protected]>
1 parent 3542b4b commit dc35482

File tree

785 files changed

+86485
-48493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

785 files changed

+86485
-48493
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
---
5+
6+
<!-- Step 1 [READ THIS] -->
7+
<!--
8+
Are you in the right place?
9+
* For issues or feature requests related to __the code in this repository__
10+
file a Github issue.
11+
* If this is a __feature request__ make sure the issue title starts with "FR:".
12+
* For general technical questions, post a question on [StackOverflow](http://stackoverflow.com/)
13+
with the firebase-authentication tag.
14+
* For general Firebase discussion, use the [firebase-talk](https://groups.google.com/forum/#!forum/firebase-talk)
15+
google group.
16+
* For help troubleshooting your application that does not fall under one
17+
of the above categories, reach out to the personalized
18+
[Firebase support channel](https://firebase.google.com/support/).
19+
-->
20+
21+
<!-- Step 2 -->
22+
23+
### [REQUIRED] Describe your environment
24+
25+
- Operating System version: **\_**
26+
- Browser version: **\_**
27+
- Firebase UI version: **\_**
28+
- Firebase SDK version: **\_**
29+
- Package name: **\_**
30+
31+
<!-- Step 3 -->
32+
33+
### [REQUIRED] Describe the problem
34+
35+
#### Steps to reproduce
36+
37+
<!--
38+
What happened? How can we make the problem occur?
39+
This could be a description, log/console output, etc.
40+
-->
41+
42+
#### Relevant Code
43+
44+
<!--
45+
Reproduce the issue on StackBlitz and provide your forked URL
46+
or give us some sample code below
47+
-->
48+
49+
<https://stackblitz.com/fork/firebase-issue-sandbox>
50+
51+
```javascript
52+
// TODO(you): code here to reproduce the problem
53+
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
---
5+
6+
**Is your feature request related to a problem? Please describe.**
7+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
8+
9+
**Describe the solution you'd like**
10+
A clear and concise description of what you want to happen.
11+
12+
**Describe alternatives you've considered**
13+
A clear and concise description of any alternative solutions or features you've considered.
14+
15+
**Additional context**
16+
Add any other context or screenshots about the feature request here.

.github/readme-banner.png

308 KB
Loading

.github/workflows/lint.yaml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Lint and Format Check
2+
3+
on:
4+
push:
5+
branches:
6+
- "@invertase/v7-development"
7+
pull_request:
8+
9+
jobs:
10+
lint:
11+
name: Lint and Format Check
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Node.js
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '20'
22+
23+
- name: Setup pnpm
24+
uses: pnpm/action-setup@v4
25+
with:
26+
version: 10
27+
28+
- name: Install dependencies
29+
run: pnpm install --frozen-lockfile
30+
31+
- name: Run ESLint check
32+
run: pnpm run lint:check
33+
34+
- name: Run Prettier check
35+
run: pnpm run format:check

.github/workflows/test.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches:
6+
- "@invertase/v7-development"
7+
pull_request:
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Setup node
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: "20"
20+
check-latest: true
21+
22+
- name: Setup pnpm
23+
uses: pnpm/action-setup@v4
24+
with:
25+
version: latest
26+
27+
- name: Install dependencies
28+
run: pnpm install
29+
30+
- name: Build packages
31+
run: pnpm run build
32+
33+
- name: Install Firebase CLI
34+
run: npm i -g [email protected]
35+
36+
- name: Enable webframeworks experiment
37+
run: firebase experiments:enable webframeworks
38+
39+
- name: Start Firebase emulator
40+
run: |
41+
firebase emulators:start --only auth --project demo-test &
42+
sleep 15
43+
# Wait for emulator to be ready
44+
until wget -q --spider http://localhost:9099 2>/dev/null; do
45+
echo "Waiting for emulator to start..."
46+
sleep 2
47+
done
48+
echo "Emulator is ready"
49+
50+
- name: Run tests
51+
run: pnpm test

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,19 @@ dist
1212
dist-ssr
1313
*.local
1414

15+
# Angular
16+
.angular
17+
.firebase
18+
19+
# Next.js
20+
.next
21+
22+
# Coverage
23+
coverage
24+
25+
# Firebase
26+
.firebase
27+
1528
# Editor directories and files
1629
.vscode/*
1730
!.vscode/extensions.json

.opensource/project.json

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
{
2-
"name": "FirebaseUI for Web",
3-
4-
"platforms": [
5-
"Web"
6-
],
7-
8-
"content": "README.md",
2+
"name": "FirebaseUI for Web",
93

10-
"pages" : {
11-
"LANGUAGES.md": "Supported Languages"
12-
},
13-
14-
"related": [
15-
"firebase/firebaseui-android",
16-
"firebase/firebaseui-ios",
17-
"firebase/firebaseui-web-react"
18-
]
4+
"platforms": ["Web"],
5+
6+
"content": "README.md",
7+
8+
"pages": {
9+
"LANGUAGES.md": "Supported Languages"
10+
},
11+
12+
"related": ["firebase/firebaseui-android", "firebase/firebaseui-ios", "firebase/firebaseui-web-react"]
1913
}

.prettierignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Dependencies
2+
node_modules/
3+
pnpm-lock.yaml
4+
package-lock.json
5+
yarn.lock
6+
7+
# Build outputs
8+
dist/
9+
build/
10+
.angular/
11+
releases/
12+
13+
# Generated files
14+
*.min.js
15+
*.min.css
16+
packages/styles/dist.css
17+
18+
# Logs
19+
*.log
20+
21+
# OS generated files
22+
.DS_Store
23+
Thumbs.db
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
22
"semi": true,
33
"trailingComma": "es5",
4-
"singleQuote": true,
4+
"singleQuote": false,
55
"printWidth": 120,
66
"tabWidth": 2,
7-
"useTabs": false
7+
"useTabs": false,
8+
"endOfLine": "auto"
89
}

CONTRIBUTING.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,129 @@
11
Want to contribute? Great! First, read this page (including the small print at
22
the end).
33

4+
## Setup
5+
6+
### Prerequisites
7+
8+
- [Node.js](https://nodejs.org/) (version 18 or higher recommended)
9+
- [pnpm](https://pnpm.io/) - This workspace uses pnpm for package management
10+
11+
### Installation
12+
13+
1. Clone the repository:
14+
15+
```bash
16+
git clone https://github.com/firebase/firebaseui-web.git
17+
cd firebaseui-web
18+
```
19+
20+
2. Install dependencies:
21+
```bash
22+
pnpm install
23+
```
24+
25+
### Development Workflow
26+
27+
This is a monorepo managed with pnpm, containing both `packages` and `examples` sub-directories.
28+
29+
#### Building
30+
31+
Build all packages:
32+
33+
```bash
34+
pnpm build
35+
```
36+
37+
Build only the packages (excluding examples):
38+
39+
```bash
40+
pnpm build:packages
41+
```
42+
43+
#### Testing
44+
45+
Run all tests:
46+
47+
```bash
48+
pnpm test
49+
```
50+
51+
Run tests in watch mode:
52+
53+
```bash
54+
pnpm test:watch
55+
```
56+
57+
Run tests for a specific package:
58+
59+
```bash
60+
pnpm --filter=<package-name> run test
61+
```
62+
63+
#### Linting and Formatting
64+
65+
Check for linting errors:
66+
67+
```bash
68+
pnpm lint:check
69+
```
70+
71+
Fix linting errors automatically:
72+
73+
```bash
74+
pnpm lint:fix
75+
```
76+
77+
Check for formatting issues:
78+
79+
```bash
80+
pnpm format:check
81+
```
82+
83+
Format code automatically:
84+
85+
```bash
86+
pnpm format:write
87+
```
88+
89+
### Project Structure
90+
91+
The project is organized as follows:
92+
93+
- **`packages/`**: Framework-agnostic and framework-specific packages
94+
- `core`: Framework-agnostic core package providing `initializeUI` and authentication functions
95+
- `translations`: Translation utilities and locale mappings
96+
- `styles`: CSS utility classes and compiled styles
97+
- `react`: React components and hooks
98+
- `angular`: Angular components and DI functionality
99+
- `shadcn`: Shadcn UI components
100+
101+
- **`examples/`**: Example applications demonstrating usage
102+
- `react`: React example
103+
- `nextjs`: Next.js example
104+
- `nextjs-ssr`: Next.js SSR example
105+
- `angular`: Angular example
106+
- `shadcn`: Shadcn example
107+
108+
The dependency graph:
109+
110+
```
111+
core → translations
112+
react → core
113+
angular → core
114+
react → styles
115+
angular → styles
116+
shadcn → react
117+
```
118+
119+
### Additional Notes
120+
121+
- All packages extend the same base `tsconfig.json` file
122+
- Vitest is the preferred testing framework
123+
- The workspace uses pnpm catalogs to ensure dependency version alignment
124+
- Linting is controlled by ESLint via a root flatconfig `eslint.config.ts` file
125+
- Formatting is controlled by Prettier integrated with ESLint via the `.prettierrc` file
126+
4127
### Before you contribute
5128

6129
Before we can use your code, you must sign the [Google Individual Contributor
@@ -36,6 +159,18 @@ All submissions, including submissions by project members, require review. We
36159
use Github pull requests for this purpose. Please refer to the
37160
[Style Guide](STYLEGUIDE.md) and ensure you respect it before submitting a PR.
38161

162+
### Releasing
163+
164+
See [`cloudbuild.yaml`](./cloudbuild.yaml) and [`publish.sh`](./publish.sh) for the full release process.
165+
166+
#### Experimental versions
167+
168+
All new commits to the main branch are published to npm under the `exp` tag.
169+
170+
#### Release versions
171+
172+
When a tag of the form `v1.0.0` is created, that version is published to npm under the `beta` tag.
173+
39174
### The small print
40175

41176
Contributions made by corporations are covered by a different agreement than the

0 commit comments

Comments
 (0)