Add provideFingerprint() for standalone Angular apps and Angular 21 demo #99
Add provideFingerprint() for standalone Angular apps and Angular 21 demo #99ilfa wants to merge 7 commits into
provideFingerprint() for standalone Angular apps and Angular 21 demo #99Conversation
9821707 to
022c790
Compare
Coverage report
Show new covered files 🐣
Test suite run success10 tests passing in 2 suites. Report generated by 🧪jest coverage report action from 9f3f1d8 Show full coverage report
|
916ef88 to
eb2a04c
Compare
| '@fingerprint/angular': minor | ||
| --- | ||
|
|
||
| Add `provideFingerprint` function for standalone Angular applications (Angular 14+). |
There was a problem hiding this comment.
It seems package.json required Angular 15+ ?
There was a problem hiding this comment.
That's right, I also added a link to the Angular docs
There was a problem hiding this comment.
Pull request overview
This PR adds first-class standalone-app configuration support for the Fingerprint Angular SDK via a new provideFingerprint() API, and introduces a new Angular 21 demo app to showcase modern Angular patterns alongside the existing NgModule-based demo.
Changes:
- Added
provideFingerprint(settings)(EnvironmentProviders) and exported it from the library public API, with Jest unit tests. - Updated demo config naming (
fingerprintPublicKey) and test TS configs to include Node types. - Added a new
projects/demo-angular21standalone Angular 21 demo app and adjusted workspace/pnpm settings for the monorepo.
Reviewed changes
Copilot reviewed 41 out of 44 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.spec.json | Adds node types for Jest specs. |
| src/environments/environment.ts | Renames demo env key to fingerprintPublicKey. |
| src/environments/environment.prod.ts | Adds fingerprintPublicKey to prod env. |
| src/app/app.module.ts | Updates demo module config to use renamed env key. |
| README.md | Updates demo instructions to match new env placeholder text. |
| projects/fingerprintjs-pro-angular/tsconfig.spec.json | Adds node types for library Jest specs. |
| projects/fingerprintjs-pro-angular/src/public-api.ts | Exports the new standalone providers entrypoint. |
| projects/fingerprintjs-pro-angular/src/lib/fingerprint.providers.ts | Implements provideFingerprint() via makeEnvironmentProviders. |
| projects/fingerprintjs-pro-angular/src/lib/fingerprint.providers.spec.ts | Adds unit tests validating standalone provider configuration. |
| projects/demo-angular21/tsconfig.spec.json | Adds Vitest globals typing for demo tests. |
| projects/demo-angular21/tsconfig.json | Sets strict TS + local path mapping to workspace library sources. |
| projects/demo-angular21/tsconfig.app.json | App TS config for demo build. |
| projects/demo-angular21/src/styles.css | Adds global styles placeholder. |
| projects/demo-angular21/src/main.ts | Bootstraps the demo using bootstrapApplication. |
| projects/demo-angular21/src/index.html | Adds demo HTML host page. |
| projects/demo-angular21/src/environments/environment.ts | Adds dev env with fingerprintPublicKey. |
| projects/demo-angular21/src/environments/environment.prod.ts | Adds prod env with fingerprintPublicKey. |
| projects/demo-angular21/src/app/preloaded/preloaded.ts | Adds preloaded demo component using inject() + signals. |
| projects/demo-angular21/src/app/preloaded/preloaded.html | Adds preloaded component template. |
| projects/demo-angular21/src/app/preloaded/preloaded.css | Adds preloaded component styles. |
| projects/demo-angular21/src/app/home/home.ts | Adds home demo component showing getVisitorData() usage. |
| projects/demo-angular21/src/app/home/home.html | Adds home component template using @if control flow. |
| projects/demo-angular21/src/app/home/home.css | Adds home component styles. |
| projects/demo-angular21/src/app/app.ts | Adds standalone root component wiring the demo pages. |
| projects/demo-angular21/src/app/app.spec.ts | Adds demo unit tests (currently inconsistent with app code/template). |
| projects/demo-angular21/src/app/app.html | Adds root template (currently uses self-closing custom elements). |
| projects/demo-angular21/src/app/app.css | Adds root component styles. |
| projects/demo-angular21/src/app/app.config.ts | Configures providers, including provideFingerprint() usage. |
| projects/demo-angular21/README.md | Adds generated Angular CLI README for demo project. |
| projects/demo-angular21/package.json | Adds demo dependencies/devDependencies (currently mismatched eslint tooling versions). |
| projects/demo-angular21/angular.json | Adds Angular 21 project config (currently references missing env.dev replacement). |
| projects/demo-angular21/.vscode/tasks.json | Adds VS Code tasks for running/attaching to demo. |
| projects/demo-angular21/.vscode/mcp.json | Adds Angular CLI MCP server config for VS Code. |
| projects/demo-angular21/.vscode/launch.json | Adds VS Code launch configs for serve/test. |
| projects/demo-angular21/.vscode/extensions.json | Recommends Angular extension. |
| projects/demo-angular21/.prettierrc | Adds demo-local Prettier config. |
| projects/demo-angular21/.gitignore | Ignores demo build output and env.dev keys file. |
| projects/demo-angular21/.eslintrc.json | Adds demo-local ESLint config. |
| projects/demo-angular21/.editorconfig | Adds demo-local editor settings. |
| package.json | Adds pnpm config/overrides for workspace dependency behavior. |
| .gitignore | Ignores per-project build outputs in workspace. |
| .changeset/add-provide-fingerprint.md | Adds changeset entry for the new provideFingerprint() API. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
🚀 Following releases will be created using changesets from this PR:@fingerprint/angular@3.0.0-test.4Minor Changes
|
Summary
provideFingerprint()— a newEnvironmentProviders-based function for configuring Fingerprint in standalone Angular applications (Angular 14+) viabootstrapApplication/ApplicationConfigFingerprintModule.forRoot()remains fully supported for NgModule-based apps (backward compatible)demo-angular21— a demo application built with Angular 21, showcasing modern Angular patterns: standalone components,inject(), signals, and new control flow syntax (@if)@angular/coreto two different store entries