Compare commits

...
Author SHA1 Message Date
Daniel Sogl 421bbf20c2 feat(intercom): add suppressProactiveContent method
Adds suppressProactiveContent(types) added in cordova-plugin-intercom 16.4.0, which lets apps independently suppress carousel/survey proactive content apart from setInAppMessageVisibility.
2026-07-27 22:16:33 +02:00
Daniel Sogl 1204bc52e7 chore(deps): update angular to 21.2.18
Angular 21 needs typescript >=5.9 <6.1; the pinned ~5.9.3 already satisfies
it, and the node engine range is unchanged from 20.

Verified against the published 9.3.0 artifacts (built with Angular 20.3.18):
the emitted .d.ts files are byte-identical and the only diff in the emitted
JS is the partial-compilation metadata string, version "20.3.18" -> "21.2.18".
minVersion stays "12.0.0", so the Angular linker floor for consumers does not
move — the library only uses @Injectable, whose declaration format has been
stable since Angular 12.

Raises the renovate cap accordingly. Angular 22 stays out: it requires
typescript >=6.0 <6.1, which turns the `module: ES2022` + `moduleResolution:
Node16` pair in scripts/build/ngx.ts into a hard TS5110 error.
2026-07-27 21:52:32 +02:00
Daniel Sogl 8b997cf357 fix(deps): update angular to 20.3.26 to patch @babel/core advisory
@angular/compiler-cli pinned @babel/core 7.29.0, which is affected by
GHSA-4x5r-pxfx-6jf8 (arbitrary file read via sourceMappingURL). 20.3.26 pins
7.29.7. Staying inside Angular 20 keeps the emitted partial-compilation
declarations unchanged (minVersion 12.0.0), so nothing changes for consumers.

npm audit fix additionally resolved the transitive brace-expansion
GHSA-3jxr-9vmj-r5cp in the lockfile.
2026-07-27 21:41:54 +02:00
Daniel Sogl 8f1a6da545 ci: let renovate manage github action versions
enabledManagers was limited to npm, so action versions never got update PRs
and drifted up to three majors behind — checkout and setup-node were still on
v4 while v7 was current.

The existing packageRules all match on `matchManagers: ["npm"]`, so action
updates fall through to the defaults: individual PRs, no automerge, reviewed
like any other major.
2026-07-27 21:35:14 +02:00
Daniel Sogl ef358238c2 ci: update release-please-action to v5
The only breaking change in v5.0.0 is the move to the node 24 runtime; inputs,
outputs and the manifest/config format are unchanged. Kept as its own commit
since this action drives the release flow and is the one worth reverting alone
if anything misbehaves.
2026-07-27 21:35:14 +02:00
Daniel Sogl 1789d08183 ci: update first-party actions to latest majors
checkout v4.3.1 -> v7.0.1, setup-node v4.4.0 -> v7.0.0, stale v9.1.0 -> v10.4.0.

The breaking changes across those majors do not apply here:
- checkout v5/v6 harden `pull_request_target` checkouts; no workflow uses it
- setup-node v5 auto-caches when package.json has a `packageManager` field;
  it has none, and `cache: npm` is set explicitly anyway
- setup-node v7 drops the dummy NODE_AUTH_TOKEN export; the publish job sets
  NODE_AUTH_TOKEN itself
- stale v10 only moves the runtime to node 24

All of them also raise the runtime to node 24, which clears the deprecation
warnings on recent runs.
2026-07-27 21:35:14 +02:00
Daniel Sogl 4de0e83d51 ci: run workflows on node 24
Also drops the explicit `npm install -g npm@latest` step: node 24 bundles
npm 11.16, well over the >= 11.5.1 that trusted publishing requires. Pulling
an unpinned npm@latest right before publishing 258 packages was the larger
risk of the two.
2026-07-27 21:35:14 +02:00
7 changed files with 93 additions and 89 deletions
+3 -3
View File
@@ -15,12 +15,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.3.1
- uses: actions/checkout@v7.0.1
- name: Setup Node.js
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: 22
node-version: 24
cache: npm
- name: Install dependencies
+5 -8
View File
@@ -21,7 +21,7 @@ jobs:
steps:
- name: Run Release Please
id: release
uses: googleapis/release-please-action@v4.4.0
uses: googleapis/release-please-action@v5.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
config-file: release-please-config.json
@@ -38,19 +38,16 @@ jobs:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4.3.1
- uses: actions/checkout@v7.0.1
- name: Setup Node.js
uses: actions/setup-node@v4.4.0
uses: actions/setup-node@v7.0.0
with:
node-version: 22
# node 24 bundles npm 11.16, over the >= 11.5.1 that trusted publishing needs
node-version: 24
cache: npm
registry-url: https://registry.npmjs.org
# node 22 ships npm 10.x; trusted publishing (OIDC) requires npm >= 11.5.1
- name: Update npm
run: npm install -g npm@latest
- name: Install dependencies
run: npm ci
+1 -1
View File
@@ -12,7 +12,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9.1.0
- uses: actions/stale@v10.4.0
with:
stale-issue-message: >
This issue has been automatically marked as inactive due to lack of
+66 -69
View File
@@ -12,10 +12,10 @@
"tslib": "2.8.1"
},
"devDependencies": {
"@angular/common": "20.3.18",
"@angular/compiler": "20.3.18",
"@angular/compiler-cli": "20.3.18",
"@angular/core": "20.3.18",
"@angular/common": "21.2.18",
"@angular/compiler": "21.2.18",
"@angular/compiler-cli": "21.2.18",
"@angular/core": "21.2.18",
"@eslint/js": "^10.0.0",
"@swc/core": "^1.15.46",
"@swc/jest": "^0.2.39",
@@ -41,24 +41,10 @@
"node": ">=20"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@angular/common": {
"version": "20.3.18",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-20.3.18.tgz",
"integrity": "sha512-M62oQbSTRmnGavIVCwimoadg/PDWadgNhactMm9fgH0eM9rx+iWBAYJk4VufO0bwOhysFpRZpJgXlFjOifz/Jw==",
"version": "21.2.18",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-21.2.18.tgz",
"integrity": "sha512-gZugZ8gX/KkACIZ3/ekoImLu5z8a0Iu9O5b84kh8e+++VUjmkmd19IygBsq/8/fF3vKf0UcIKcx3P6A/gb2DJw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -68,14 +54,14 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/core": "20.3.18",
"@angular/core": "21.2.18",
"rxjs": "^6.5.3 || ^7.4.0"
}
},
"node_modules/@angular/compiler": {
"version": "20.3.18",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-20.3.18.tgz",
"integrity": "sha512-AaP/LCiDNcYmF135EEozjyR04NRBT38ZfBHQwjhgwiBBTejmvcpHwJaHSkraLpZqZzE4BQqqmgiQ1EJqxEwLVA==",
"version": "21.2.18",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.2.18.tgz",
"integrity": "sha512-ccnDuKLuzIa0ayijR+alarsHNWIksuGV/lxGTZ0t6/0+B6J/RXupz6M2IO6ZHHEcg8r7pcrLCUBTyp3FoiRJrg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -86,15 +72,15 @@
}
},
"node_modules/@angular/compiler-cli": {
"version": "20.3.18",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-20.3.18.tgz",
"integrity": "sha512-zsoEgLgnblmRbi47YwMghKirJ8IBKJ3+I8TxLBRIBrhx+KHFp+6oeDeLyu9H+djdyk88zexVd09wzR/YK73F0g==",
"version": "21.2.18",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.2.18.tgz",
"integrity": "sha512-L5zbIp7YfTTB4I4xT33FgEBanzhppNejzZX0HJOEqKDyDL2jXq+flt83lE0XVuRJ6/zrG+UKj0B+y/CK6Ro7Wg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "7.28.3",
"@babel/core": "7.29.7",
"@jridgewell/sourcemap-codec": "^1.4.14",
"chokidar": "^4.0.0",
"chokidar": "^5.0.0",
"convert-source-map": "^1.5.1",
"reflect-metadata": "^0.2.0",
"semver": "^7.0.0",
@@ -109,8 +95,8 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/compiler": "20.3.18",
"typescript": ">=5.8 <6.0"
"@angular/compiler": "21.2.18",
"typescript": ">=5.9 <6.1"
},
"peerDependenciesMeta": {
"typescript": {
@@ -119,9 +105,9 @@
}
},
"node_modules/@angular/core": {
"version": "20.3.18",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-20.3.18.tgz",
"integrity": "sha512-B+NQQngd/aDbcfW0zGLis3wTLDeHTeTYMl/mGKQH+HwdPaRCKI1wEtaXaOYVJXkP2FeThocPevB8gLwNlPQUUw==",
"version": "21.2.18",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-21.2.18.tgz",
"integrity": "sha512-AG4bb6GU0+qp+vVBjc/IhSPjgcRX8QsCb8jzN8dDyhnjsyuuG/LlIiU0l6n65BI9SGKE9m6TfsJ1ObkkAiE5KQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -131,9 +117,9 @@
"node": "^20.19.0 || ^22.12.0 || >=24.0.0"
},
"peerDependencies": {
"@angular/compiler": "20.3.18",
"@angular/compiler": "21.2.18",
"rxjs": "^6.5.3 || ^7.4.0",
"zone.js": "~0.15.0"
"zone.js": "~0.15.0 || ~0.16.0"
},
"peerDependenciesMeta": {
"@angular/compiler": {
@@ -191,22 +177,22 @@
}
},
"node_modules/@babel/core": {
"version": "7.28.3",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz",
"integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==",
"version": "7.29.7",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
"integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.3",
"@babel/helper-compilation-targets": "^7.27.2",
"@babel/helper-module-transforms": "^7.28.3",
"@babel/helpers": "^7.28.3",
"@babel/parser": "^7.28.3",
"@babel/template": "^7.27.2",
"@babel/traverse": "^7.28.3",
"@babel/types": "^7.28.2",
"@babel/code-frame": "^7.29.7",
"@babel/generator": "^7.29.7",
"@babel/helper-compilation-targets": "^7.29.7",
"@babel/helper-module-transforms": "^7.29.7",
"@babel/helpers": "^7.29.7",
"@babel/parser": "^7.29.7",
"@babel/template": "^7.29.7",
"@babel/traverse": "^7.29.7",
"@babel/types": "^7.29.7",
"@jridgewell/remapping": "^2.3.5",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -2015,6 +2001,17 @@
"@jridgewell/trace-mapping": "^0.3.24"
}
},
"node_modules/@jridgewell/remapping": {
"version": "2.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
"integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -3851,16 +3848,16 @@
}
},
"node_modules/brace-expansion": {
"version": "5.0.6",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
"integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz",
"integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==",
"dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^4.0.2"
},
"engines": {
"node": "18 || 20 || >=22"
"node": "20 || >=22"
}
},
"node_modules/browserslist": {
@@ -3983,16 +3980,16 @@
}
},
"node_modules/chokidar": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
"integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
"integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
"dev": true,
"license": "MIT",
"dependencies": {
"readdirp": "^4.0.1"
"readdirp": "^5.0.0"
},
"engines": {
"node": ">= 14.16.0"
"node": ">= 20.19.0"
},
"funding": {
"url": "https://paulmillr.com/funding/"
@@ -4897,9 +4894,9 @@
"license": "MIT"
},
"node_modules/glob/node_modules/brace-expansion": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz",
"integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz",
"integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6961,13 +6958,13 @@
"license": "MIT"
},
"node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
"integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz",
"integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 14.18.0"
"node": ">= 20.19.0"
},
"funding": {
"type": "individual",
@@ -7477,9 +7474,9 @@
"license": "MIT"
},
"node_modules/test-exclude/node_modules/brace-expansion": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
"integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
"version": "1.1.16",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz",
"integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==",
"dev": true,
"license": "MIT",
"dependencies": {
+4 -4
View File
@@ -27,10 +27,10 @@
"tslib": "2.8.1"
},
"devDependencies": {
"@angular/common": "20.3.18",
"@angular/compiler": "20.3.18",
"@angular/compiler-cli": "20.3.18",
"@angular/core": "20.3.18",
"@angular/common": "21.2.18",
"@angular/compiler": "21.2.18",
"@angular/compiler-cli": "21.2.18",
"@angular/core": "21.2.18",
"@eslint/js": "^10.0.0",
"@swc/core": "^1.15.46",
"@swc/jest": "^0.2.39",
+2 -2
View File
@@ -52,7 +52,7 @@
},
{
"groupName": "Angular",
"allowedVersions": "<=20",
"allowedVersions": "<=21",
"automerge": false,
"matchPackageNames": ["/^@angular//", "/^@angular-devkit//", "/@schematics/angular/"]
},
@@ -101,7 +101,7 @@
"prHourlyLimit": 2,
"prConcurrentLimit": 5,
"updatePinnedDependencies": false,
"enabledManagers": ["npm"],
"enabledManagers": ["npm", "github-actions"],
"ignoreDeps": [],
"ignorePaths": ["**/node_modules/**", "**/dist/**", "**/coverage/**"]
}
@@ -219,6 +219,17 @@ export class Intercom extends AwesomeCordovaNativePlugin {
return;
}
/**
* Suppress the given proactive content types, independently of `setInAppMessageVisibility`.
* @note All proactive content is visible by default; pass an empty array to unsuppress all.
*
* @param types An array of content type strings to suppress, e.g. `[IntercomPresentContentType.Carousel, IntercomPresentContentType.Survey]`.
*/
@Cordova()
suppressProactiveContent(types: IntercomPresentContentType[]): Promise<void> {
return;
}
/**
* Hide all Intercom windows that are currently displayed.
* This will hide the Messenger, Help Center, Articles, and in-product messages (eg. Mobile Carousels, chats, and posts).
@@ -375,8 +386,7 @@ export enum IntercomPresentContentType {
}
export type IntercomPresentContent =
| { id: string; type: IntercomPresentContentType }
| { ids: string[]; type: IntercomPresentContentType };
{ id: string; type: IntercomPresentContentType } | { ids: string[]; type: IntercomPresentContentType };
export interface IntercomUserAttributes {
email?: string;