Skip to content

feat: migrate adobe kit to monorepo#1207

Open
nickolas-dimitrakas wants to merge 7 commits intoworkstation/3.0-Releasefrom
feat/migrate-adobe
Open

feat: migrate adobe kit to monorepo#1207
nickolas-dimitrakas wants to merge 7 commits intoworkstation/3.0-Releasefrom
feat/migrate-adobe

Conversation

@nickolas-dimitrakas
Copy link
Contributor

@nickolas-dimitrakas nickolas-dimitrakas commented Mar 9, 2026

Background

  • The web SDK is adopting the kits-in-monorepo pattern as part of the kit simplification initiative. Kits are moving from individual `mparticle-integrations` repos into the `mparticle-web-sdk` monorepo under `kits/`.
  • The Adobe kit uses a repo-level build and test orchestration — the build concatenates `AdobeSDKs/` vendor files (VisitorAPI.js, AppMeasurement.js) with each package's source before running rollup, and tests run from the root using Jest with `MODULE=client/server` env vars. The full repo structure is preserved under `kits/adobe/` for this to work correctly.
  • After this PR is merged, a corresponding backend PR will be required to reflect the new package locations.

What Changed

  • Migrated `mparticle-javascript-integration-adobe` into `kits/adobe/` preserving the full repo structure:
    • `kits/adobe/packages/AdobeClient` (`@mparticle/web-adobe-client-kit` v2.1.3)
    • `kits/adobe/packages/AdobeServer` (`@mparticle/web-adobe-server-kit` v2.1.2)
    • `kits/adobe/HeartbeatKit`
    • `kits/adobe/AdobeSDKs` (VisitorAPI.js, AppMeasurement.js vendor files required for build)
    • `kits/adobe/test` (Jest tests for client + server)
  • Updated `kits/matrix.json` with a single `kits/adobe` entry so CI runs `npm ci && npm run build && npm test` from the repo root
  • Updated root `package.json` repository field to point to the monorepo

Checklist

  • I have performed a self-review of my own code.
  • I have made corresponding changes to the documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have tested this locally.

Reference Issue (For employees only. Ignore if you are an outside contributor)

Migrates mparticle-javascript-integration-adobe into the web SDK
monorepo under kits/adobe/.

The Adobe kit uses a repo-level build and test orchestration — the
root rollup.config.js concatenates AdobeSDKs vendor files with each
package's source before bundling, and tests run from the root using
Jest with MODULE env vars. The full repo structure is preserved under
kits/adobe/ to keep this working correctly.

Structure:
- kits/adobe/packages/AdobeClient  (@mparticle/web-adobe-client-kit v2.1.3)
- kits/adobe/packages/AdobeServer  (@mparticle/web-adobe-server-kit v2.1.2)
- kits/adobe/HeartbeatKit
- kits/adobe/AdobeSDKs             (VisitorAPI.js, AppMeasurement.js)
- kits/adobe/test                  (Jest tests for client + server)
- Updated package.json repository field to point to monorepo
- Added kits/adobe to kits/matrix.json for CI coverage

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@nickolas-dimitrakas nickolas-dimitrakas requested a review from a team March 9, 2026 17:14
nickolas-dimitrakas and others added 3 commits March 9, 2026 13:31
…jest

- Add kits/adobe/AdobeSDKs/ and babel.config.js to .prettierignore to
  exclude third-party vendor files from formatting checks
- Add testPathIgnorePatterns to jest.config.js to prevent root jest
  runner from picking up kit test files (kits use karma, not jest)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fresh git checkouts don't include empty dist/ directories (git doesn't
track empty directories and .gitignore excludes dist/). Add mkdir -p to
the build:client:* and build:server:* scripts so the build succeeds
in a clean CI environment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Server kit registers with suffix 'Server' creating key 'Adobe-Server'
in mParticle's forwarder constructors map. Without suffix: 'Server' in
the test kitConfig, configureUIEnabledKit cannot match the constructor
and initForwarder is never called, causing all integration tests to fail.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
nickolas-dimitrakas and others added 3 commits March 9, 2026 16:36
Previously excluded all kits/ which was overly broad. Only the Adobe
kit uses Jest (with test.js / server.test.js filenames that match
Jest's default testMatch). Other kits use Karma and name their files
tests.js (plural), so they don't need an explicit exclusion.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…erns

Jest ignores node_modules by default; the explicit entry was unnecessary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove kits/adobe/.prettierrc so Adobe inherits root prettier settings.
  Only difference was trailingComma: "none" vs root's "es5"; Adobe source
  files reformatted accordingly (trailing commas added, no logic changes).
- Update .prettierignore: remove kits/adobe/babel.config.js (no longer
  needed once trailing comma conflict is resolved); keep AdobeSDKs/ vendor
  exclusion.
- Add "root": true to kits/adobe/.eslintrc to prevent ESLint from walking
  up to root config when run from within the kit directory.

Part of ongoing effort to consolidate all configs at the repo root.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 9, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
2 Security Hotspots
3.3% Duplication on New Code (required ≤ 3%)
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Comment on lines 1 to 4
{
"root": true,
"env": {
"node": true
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@alexs-mparticle @rmi22186 @jaissica12 @khushi1033 Will have a follow up PR in cleanup to align all the formatting configs and resolve the differences to align with the root config.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant