Skip to content
Open

Dev #98

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3a91eaf
build: removed rxjs usage from component, it was useless
matteobruni Apr 1, 2024
76a4ce4
build: updated deps
matteobruni Apr 1, 2024
6d982d1
Merge branch 'main' into dev
matteobruni Apr 1, 2024
92ab360
Update pnpm-lock.yaml
matteobruni Apr 1, 2024
80a83b0
chore(deps): update actions/cache action to v4
renovate[bot] Apr 1, 2024
a7dc760
chore(deps): update pnpm/action-setup action to v3
renovate[bot] Apr 1, 2024
b38d748
chore(deps): update angular-eslint monorepo to ~17.3.0
renovate[bot] Apr 1, 2024
d6e6c72
fix(deps): update angular monorepo to ~17.3.0
renovate[bot] Apr 1, 2024
0d5f483
fix(deps): update commitlint monorepo to v19
renovate[bot] Apr 1, 2024
d82c7d2
fix(deps): update dependency typedoc-plugin-coverage to v3
renovate[bot] Apr 1, 2024
6e755f5
Merge pull request #100 from tsparticles/renovate/major-commitlint-mo…
matteobruni Apr 1, 2024
916eb1b
Merge pull request #99 from tsparticles/renovate/pnpm-action-setup-3.x
matteobruni Apr 1, 2024
a78a490
Merge pull request #87 from tsparticles/renovate/actions-cache-4.x
matteobruni Apr 1, 2024
520f5a6
Merge pull request #89 from tsparticles/renovate/angular-monorepo
matteobruni Apr 1, 2024
b852f10
Merge pull request #93 from tsparticles/renovate/typedoc-plugin-cover…
matteobruni Apr 1, 2024
693b162
Merge pull request #84 from tsparticles/renovate/angular-eslint-monorepo
matteobruni Apr 1, 2024
13e8921
fix(deps): update dependency husky to v9
renovate[bot] Apr 1, 2024
9ecf55d
chore(deps): update dependency typescript to ~5.4.0
renovate[bot] Apr 1, 2024
c753d50
Merge pull request #92 from tsparticles/renovate/husky-9.x
matteobruni Apr 1, 2024
ebd72ab
Merge pull request #62 from tsparticles/renovate/typescript-5.x
matteobruni Apr 1, 2024
be2184d
chore(deps): update dependency ng-packagr to ~17.3.0
renovate[bot] Apr 1, 2024
9c5f224
Merge pull request #86 from tsparticles/renovate/ng-packagr-17.x
matteobruni Apr 1, 2024
1724630
chore(deps): update angular-cli monorepo to ~17.3.0
renovate[bot] Apr 1, 2024
478dfe3
Merge pull request #88 from tsparticles/renovate/angular-cli-monorepo
matteobruni Apr 1, 2024
2640d40
build: removed whatsapp and slack link, closing them
matteobruni Sep 10, 2024
686d371
chore(ci): update pnpm install command to remove --no-frozen-lockfile…
matteobruni Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v2.4.0
- uses: pnpm/action-setup@v3.0.0
name: Install pnpm
id: pnpm-install
with:
Expand All @@ -45,14 +45,14 @@ jobs:
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The set-output command is deprecated by GitHub Actions and will be removed. Replace 'echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"' with 'echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT' to use the current recommended approach.

Suggested change
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT

Copilot uses AI. Check for mistakes.

- uses: actions/cache@v3
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- run: pnpm install --no-frozen-lockfile
- run: pnpm install
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

pnpm install frozen-lockfile default behavior CI environment

💡 Result:

pnpm install implicitly behaves like pnpm install --frozen-lockfile when it detects a CI environment:

  • Default in non-CI: --frozen-lockfile = false
  • Default in CI: --frozen-lockfile = true if a lockfile (pnpm-lock.yaml) is present
    → the install fails if the lockfile would need to be updated (out of sync with package.json), or if no lockfile is present. [1]

To override this in CI, run:

  • pnpm install --no-frozen-lockfile (allows updating the lockfile during install) [1]

CI detection is based on common CI env vars (via ci-info, e.g. CI, CONTINUOUS_INTEGRATION, BUILD_NUMBER, RUN_ID, etc.). [1]

Sources:
[1] pnpm docs – pnpm install / --frozen-lockfile defaults and CI behavior.


🏁 Script executed:

cat -n .github/workflows/nodejs.yml | sed -n '50,60p'

Repository: tsparticles/angular

Length of output: 568


🏁 Script executed:

cat -n .github/workflows/nodejs.yml | sed -n '92,102p'

Repository: tsparticles/angular

Length of output: 563


🏁 Script executed:

cat -n .github/workflows/nodejs.yml | sed -n '133,143p'

Repository: tsparticles/angular

Length of output: 464


🏁 Script executed:

ls -la pnpm-lock.yaml 2>/dev/null && echo "Lockfile exists" || echo "Lockfile not found"

Repository: tsparticles/angular

Length of output: 144


🏁 Script executed:

# Search for any commented-out lines with --no-frozen-lockfile in the workflow
rg "no-frozen-lockfile" .github/workflows/nodejs.yml

Repository: tsparticles/angular

Length of output: 45


🏁 Script executed:

# Check if there are any environment variables set for pnpm in the workflow
rg "PNPM_CONFIG" .github/workflows/nodejs.yml

Repository: tsparticles/angular

Length of output: 45


Ensure pnpm install frozen-lockfile behavior in CI is intentional.

In CI environments, pnpm auto-detects and defaults to --frozen-lockfile=true when a lockfile is present. This means builds will fail if pnpm-lock.yaml becomes out of sync with package.json. The removal of --no-frozen-lockfile enforces strict lockfile consistency. If this is the intended behavior, that's appropriate; otherwise, restore the flag or set PNPM_CONFIG_FROZEN_LOCKFILE=false to allow lockfile updates during install.

Note: This also applies to lines 97 and 138 (commented agents job).

🤖 Prompt for AI Agents
In @.github/workflows/nodejs.yml at line 55, The workflow change removed the
explicit no-frozen-lockfile behavior for the step that runs "run: pnpm install",
which causes CI to use pnpm's default frozen-lockfile mode; decide whether you
want strict lockfile enforcement or allow lockfile updates and update the CI
accordingly: either restore the flag by making the install step run "pnpm
install --no-frozen-lockfile" or set the environment variable
PNPM_CONFIG_FROZEN_LOCKFILE=false for the job; apply the same change to the
other "run: pnpm install" occurrences in the commented agents job so all pnpm
install steps have consistent behavior.

#- run: npx nx-cloud start-ci-run
- run: pnpm run prettify:ci:readme
- run: pnpm run build:ci #--concurrency 3
Expand All @@ -71,7 +71,7 @@ jobs:
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v2.4.0
- uses: pnpm/action-setup@v3.0.0
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the pr job, the pnpm/action-setup action is also updated to version 3.0.0, but the version specified for pnpm is 7. This inconsistency between the main and pr jobs could lead to different behaviors or issues when installing dependencies. Consider aligning the pnpm versions across both jobs for consistency.

-          version: 7
+          version: 8

Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation.

Suggested change
- uses: pnpm/action-setup@v3.0.0
- uses: pnpm/action-setup@v3.0.0

name: Install pnpm
id: pnpm-install
with:
Expand All @@ -87,14 +87,14 @@ jobs:
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
Copy link

Copilot AI Feb 2, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The set-output command is deprecated by GitHub Actions and will be removed. Replace 'echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"' with 'echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT' to use the current recommended approach.

Copilot uses AI. Check for mistakes.

- uses: actions/cache@v3
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- run: pnpm install --no-frozen-lockfile
- run: pnpm install
#- run: npx nx-cloud start-ci-run
- run: pnpm run prettify:ci:readme
- run: pnpm run build:ci #--concurrency 3
Expand Down Expand Up @@ -135,6 +135,6 @@ jobs:
# key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
# restore-keys: |
# ${{ runner.os }}-pnpm-store-
# - run: pnpm install --no-frozen-lockfile
# - run: pnpm install
# - name: Start Nx Agent ${{ matrix.agent }}
# run: npx nx-cloud start-agent
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Official [tsParticles](https://github.com/matteobruni/tsparticles) Angular component

[![Slack](https://particles.js.org/images/slack.png)](https://join.slack.com/t/tsparticles/shared_invite/enQtOTcxNTQxNjQ4NzkxLWE2MTZhZWExMWRmOWI5MTMxNjczOGE1Yjk0MjViYjdkYTUzODM3OTc5MGQ5MjFlODc4MzE0N2Q1OWQxZDc1YzI) [![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles)
[![Discord](https://particles.js.org/images/discord.png)](https://discord.gg/hACwv45Hme) [![Telegram](https://particles.js.org/images/telegram.png)](https://t.me/tsparticles)

[![tsParticles Product Hunt](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=186113&theme=light)](https://www.producthunt.com/posts/tsparticles?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-tsparticles") <a href="https://www.buymeacoffee.com/matteobruni"><img src="https://img.buymeacoffee.com/button-api/?text=Buy me a beer&emoji=🍺&slug=matteobruni&button_colour=5F7FFF&font_colour=ffffff&font_family=Arial&outline_colour=000000&coffee_colour=FFDD00"></a>

Expand Down
142 changes: 71 additions & 71 deletions apps/angular-demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,88 +11,88 @@
},
"private": true,
"dependencies": {
"@angular/animations": "~17.0.8",
"@angular/common": "~17.0.8",
"@angular/compiler": "~17.0.8",
"@angular/core": "~17.0.8",
"@angular/forms": "~17.0.8",
"@angular/platform-browser": "~17.0.8",
"@angular/platform-browser-dynamic": "~17.0.8",
"@angular/router": "~17.0.8",
"@angular/animations": "~17.3.0",
"@angular/common": "~17.3.0",
"@angular/compiler": "~17.3.0",
"@angular/core": "~17.3.0",
"@angular/forms": "~17.3.0",
"@angular/platform-browser": "~17.3.0",
"@angular/platform-browser-dynamic": "~17.3.0",
"@angular/router": "~17.3.0",
"@tsparticles/angular": "workspace:^",
"@tsparticles/basic": "^3.0.2",
"@tsparticles/confetti": "^3.0.2",
"@tsparticles/configs": "^3.0.2",
"@tsparticles/effect-trail": "^3.0.2",
"@tsparticles/engine": "^3.0.2",
"@tsparticles/fireworks": "^3.0.2",
"@tsparticles/interaction-external-attract": "^3.0.2",
"@tsparticles/interaction-external-bounce": "^3.0.2",
"@tsparticles/interaction-external-bubble": "^3.0.2",
"@tsparticles/interaction-external-connect": "^3.0.2",
"@tsparticles/interaction-external-grab": "^3.0.2",
"@tsparticles/interaction-external-pause": "^3.0.2",
"@tsparticles/interaction-external-push": "^3.0.2",
"@tsparticles/interaction-external-remove": "^3.0.2",
"@tsparticles/interaction-external-repulse": "^3.0.2",
"@tsparticles/interaction-external-slow": "^3.0.2",
"@tsparticles/interaction-external-trail": "^3.0.2",
"@tsparticles/interaction-particles-attract": "^3.0.2",
"@tsparticles/interaction-particles-collisions": "^3.0.2",
"@tsparticles/interaction-particles-links": "^3.0.2",
"@tsparticles/move-base": "^3.0.2",
"@tsparticles/move-parallax": "^3.0.2",
"@tsparticles/pjs": "^3.0.2",
"@tsparticles/plugin-absorbers": "^3.0.2",
"@tsparticles/plugin-easing-quad": "^3.0.2",
"@tsparticles/plugin-emitters": "^3.0.2",
"@tsparticles/plugin-emitters-shape-circle": "^3.0.2",
"@tsparticles/plugin-emitters-shape-square": "^3.0.2",
"@tsparticles/plugin-motion": "^3.0.2",
"@tsparticles/plugin-polygon-mask": "^3.0.2",
"@tsparticles/plugin-sounds": "^3.0.2",
"@tsparticles/shape-cards": "^3.0.2",
"@tsparticles/shape-circle": "^3.0.2",
"@tsparticles/shape-emoji": "^3.0.2",
"@tsparticles/shape-heart": "^3.0.2",
"@tsparticles/shape-image": "^3.0.2",
"@tsparticles/shape-line": "^3.0.2",
"@tsparticles/shape-polygon": "^3.0.2",
"@tsparticles/shape-square": "^3.0.2",
"@tsparticles/shape-star": "^3.0.2",
"@tsparticles/shape-text": "^3.0.2",
"@tsparticles/slim": "^3.0.2",
"@tsparticles/updater-color": "^3.0.2",
"@tsparticles/updater-destroy": "^3.0.2",
"@tsparticles/updater-life": "^3.0.2",
"@tsparticles/updater-opacity": "^3.0.2",
"@tsparticles/updater-out-modes": "^3.0.2",
"@tsparticles/updater-roll": "^3.0.2",
"@tsparticles/updater-rotate": "^3.0.2",
"@tsparticles/updater-size": "^3.0.2",
"@tsparticles/updater-stroke-color": "^3.0.2",
"@tsparticles/updater-tilt": "^3.0.2",
"@tsparticles/updater-twinkle": "^3.0.2",
"@tsparticles/updater-wobble": "^3.0.2",
"@tsparticles/basic": "^3.3.0",
"@tsparticles/confetti": "^3.3.0",
"@tsparticles/configs": "^3.3.0",
"@tsparticles/effect-trail": "^3.3.0",
"@tsparticles/engine": "^3.3.0",
"@tsparticles/fireworks": "^3.3.0",
"@tsparticles/interaction-external-attract": "^3.3.0",
"@tsparticles/interaction-external-bounce": "^3.3.0",
"@tsparticles/interaction-external-bubble": "^3.3.0",
"@tsparticles/interaction-external-connect": "^3.3.0",
"@tsparticles/interaction-external-grab": "^3.3.0",
"@tsparticles/interaction-external-pause": "^3.3.0",
"@tsparticles/interaction-external-push": "^3.3.0",
"@tsparticles/interaction-external-remove": "^3.3.0",
"@tsparticles/interaction-external-repulse": "^3.3.0",
"@tsparticles/interaction-external-slow": "^3.3.0",
"@tsparticles/interaction-external-trail": "^3.3.0",
"@tsparticles/interaction-particles-attract": "^3.3.0",
"@tsparticles/interaction-particles-collisions": "^3.3.0",
"@tsparticles/interaction-particles-links": "^3.3.0",
"@tsparticles/move-base": "^3.3.0",
"@tsparticles/move-parallax": "^3.3.0",
"@tsparticles/pjs": "^3.3.0",
"@tsparticles/plugin-absorbers": "^3.3.0",
"@tsparticles/plugin-easing-quad": "^3.3.0",
"@tsparticles/plugin-emitters": "^3.3.0",
"@tsparticles/plugin-emitters-shape-circle": "^3.3.0",
"@tsparticles/plugin-emitters-shape-square": "^3.3.0",
"@tsparticles/plugin-motion": "^3.3.0",
"@tsparticles/plugin-polygon-mask": "^3.3.0",
"@tsparticles/plugin-sounds": "^3.3.0",
"@tsparticles/shape-cards": "^3.3.0",
"@tsparticles/shape-circle": "^3.3.0",
"@tsparticles/shape-emoji": "^3.3.0",
"@tsparticles/shape-heart": "^3.3.0",
"@tsparticles/shape-image": "^3.3.0",
"@tsparticles/shape-line": "^3.3.0",
"@tsparticles/shape-polygon": "^3.3.0",
"@tsparticles/shape-square": "^3.3.0",
"@tsparticles/shape-star": "^3.3.0",
"@tsparticles/shape-text": "^3.3.0",
"@tsparticles/slim": "^3.3.0",
"@tsparticles/updater-color": "^3.3.0",
"@tsparticles/updater-destroy": "^3.3.0",
"@tsparticles/updater-life": "^3.3.0",
"@tsparticles/updater-opacity": "^3.3.0",
"@tsparticles/updater-out-modes": "^3.3.0",
"@tsparticles/updater-roll": "^3.3.0",
"@tsparticles/updater-rotate": "^3.3.0",
"@tsparticles/updater-size": "^3.3.0",
"@tsparticles/updater-stroke-color": "^3.3.0",
"@tsparticles/updater-tilt": "^3.3.0",
"@tsparticles/updater-twinkle": "^3.3.0",
"@tsparticles/updater-wobble": "^3.3.0",
"angular-confetti": "workspace:^",
"angular-fireworks": "workspace:^",
"rxjs": "~7.8.1",
"tslib": "^2.6.2",
"tsparticles": "^3.0.2",
"zone.js": "~0.14.2"
"tsparticles": "^3.3.0",
"zone.js": "~0.14.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "~17.0.8",
"@angular/cli": "~17.0.8",
"@angular/compiler-cli": "~17.0.8",
"@angular-devkit/build-angular": "~17.3.0",
"@angular/cli": "~17.3.0",
"@angular/compiler-cli": "~17.3.0",
"@types/jasmine": "~5.1.4",
"@types/node": "^20.10.5",
"jasmine-core": "~5.1.1",
"karma": "~6.4.2",
"@types/node": "^20.12.2",
"jasmine-core": "~5.1.2",
"karma": "~6.4.3",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.1",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.2.2"
"typescript": "~5.4.0"
}
}
5 changes: 3 additions & 2 deletions apps/angular-demo/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import { Component } from "@angular/core";
import type { Container, Engine, ISourceOptions } from "@tsparticles/engine";
import { loadFull } from "tsparticles";
import configs from "@tsparticles/configs";
import { NgParticlesService } from "@tsparticles/angular";

@Component({
selector: "app-root",
templateUrl: "./app.component.html",
styleUrls: [ "./app.component.css" ]
styleUrls: ["./app.component.css"]
})
export class AppComponent {
title = "angular";
Expand Down Expand Up @@ -50,6 +49,8 @@ export class AppComponent {
void this.ngParticlesService.init(async (engine: Engine) => {
console.log("init", engine);

const { loadFull } = await import("tsparticles");

await loadFull(engine);
});
}
Expand Down
Loading
Loading