{"_id":"@atlassian/connect-to-forge","_rev":"3-cb32646db4424d473b52ac6526a6f3f4","name":"@atlassian/connect-to-forge","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.24":{"name":"@atlassian/connect-to-forge","version":"1.0.24","author":{"name":"Robert Massaioli","email":"connect-on-forge@rmdir.app"},"license":"MIT","_id":"@atlassian/connect-to-forge@1.0.24","maintainers":[{"name":"atlassianartifactteam","email":"eng-development-tooling-secrets-and-artifacts@atlassian.com"}],"homepage":"https://bitbucket.org/atlassian/connect-to-forge#readme","bugs":{"url":"https://bitbucket.org/atlassian/connect-to-forge/issues"},"bin":{"connect-to-forge":"dist/connect-to-forge.js"},"dist":{"shasum":"78837ba0278c5b94f7b561daa60629033eb96c09","tarball":"https://registry.npmjs.org/@atlassian/connect-to-forge/-/connect-to-forge-1.0.24.tgz","fileCount":4,"integrity":"sha512-8dBWa9aw35kr5JSWWtlZ5mxez34oIesVL52NlCqhc2ELIfqv41K9NNlAMpIPy3MQYJXzsx5+eGfW7ruDAmRCuw==","signatures":[{"sig":"MEUCIQCLeoPJ8aygiOKgOCGwIqL2XQexo5v+zBF4RflYGQ4FJgIgdgSAVy5vrlILGgzwKdb4+FOIaheTPNhfQmPBn2J+loA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":952685},"main":"dist/index","_from":"file:/tmp/package-1-6826b12f-b9cd78a33fe8c2b3abf75db4-1.tgz","scripts":{"build":"tsc -p ./tsconfig.json","start":"ts-node --esm src/index.ts","prepack":"webpack --mode production --config webpack.config.js","start-conf":"ts-node --esm src/index.ts --type confluence --url","start-jira":"ts-node --esm src/index.ts --type jira --url"},"_npmUser":{"name":"atlassianartifactteam","email":"eng-development-tooling-secrets-and-artifacts@atlassian.com"},"_resolved":"/tmp/package-1-6826b12f-b9cd78a33fe8c2b3abf75db4-1.tgz","_integrity":"sha512-8dBWa9aw35kr5JSWWtlZ5mxez34oIesVL52NlCqhc2ELIfqv41K9NNlAMpIPy3MQYJXzsx5+eGfW7ruDAmRCuw==","repository":{"url":"git+https://bitbucket.org/atlassian/connect-to-forge.git","type":"git"},"_npmVersion":"10.8.2","description":"Converts an Atlassian Connect Descritor to a connect-on-forge manifest.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.4.0","js-yaml":"^4.1.0","inquirer":"^8.2.4","commander":"^11.0.0","deepmerge":"^4.3.1","ts-is-present":"^1.2.2"},"publishConfig":{"registry":"https://packages.atlassian.com/api/npm/npm-public/"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.1","webpack":"^5.88.2","ts-loader":"^9.4.4","typescript":"^5.1.6","@types/node":"^20.4.2","webpack-cli":"^5.1.4","@types/js-yaml":"^4.0.5","@types/inquirer":"^9.0.3","@types/deepmerge":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/connect-to-forge_1.0.24_1747366194778_0.9369254182618576","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@atlassian/connect-to-forge","version":"1.1.0","author":{"name":"Robert Massaioli","email":"connect-on-forge@rmdir.app"},"license":"MIT","_id":"@atlassian/connect-to-forge@1.1.0","maintainers":[{"name":"atlassianartifactteam","email":"eng-development-tooling-secrets-and-artifacts@atlassian.com"}],"homepage":"https://github.com/robertmassaioli/connect-to-forge#readme","bugs":{"url":"https://github.com/robertmassaioli/connect-to-forge/issues"},"bin":{"connect-to-forge":"dist/connect-to-forge.js"},"dist":{"shasum":"d660f747b275a722a479517ebb53ccafca923e93","tarball":"https://registry.npmjs.org/@atlassian/connect-to-forge/-/connect-to-forge-1.1.0.tgz","fileCount":5,"integrity":"sha512-DRPN5zlMpgRNYzn7XDYUUr3QS5LtZ+X1bPyVoZBsKe6+GR76+2UVDX6F9gmeUDYsgNGI1BocxrNj7UkJg5lqTA==","signatures":[{"sig":"MEQCICpX1qTzbyozazhzcA1/6Ml2kHSN1irC0sUXgpVARxZbAiByMLQH/jaWuteEoOa7KgFWvgWhfDRr7Jza6g2Bbc6+ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":970293},"main":"dist/index","_from":"file:/tmp/package-1-682d66cd-0bcf8e06ff09d6e77225c943-1.tgz","scripts":{"build":"tsc -p ./tsconfig.json","start":"ts-node --esm src/index.ts","prepack":"webpack --mode production --config webpack.config.js","start-conf":"ts-node --esm src/index.ts --type confluence --url","start-jira":"ts-node --esm src/index.ts --type jira --url"},"_npmUser":{"name":"atlassianartifactteam","email":"eng-development-tooling-secrets-and-artifacts@atlassian.com"},"_resolved":"/tmp/package-1-682d66cd-0bcf8e06ff09d6e77225c943-1.tgz","_integrity":"sha512-DRPN5zlMpgRNYzn7XDYUUr3QS5LtZ+X1bPyVoZBsKe6+GR76+2UVDX6F9gmeUDYsgNGI1BocxrNj7UkJg5lqTA==","repository":{"url":"git+https://github.com/robertmassaioli/connect-to-forge.git","type":"git"},"_npmVersion":"10.8.2","description":"Converts an Atlassian Connect Descritor to a connect-on-forge manifest.","directories":{},"_nodeVersion":"20.19.0","dependencies":{"axios":"^1.4.0","js-yaml":"^4.1.0","inquirer":"^8.2.4","commander":"^11.0.0","deepmerge":"^4.3.1","ts-is-present":"^1.2.2"},"publishConfig":{"registry":"https://packages.atlassian.com/api/npm/npm-public/"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.1","webpack":"^5.88.2","ts-loader":"^9.4.4","typescript":"^5.1.6","@types/node":"^20.4.2","webpack-cli":"^5.1.4","@types/js-yaml":"^4.0.5","@types/inquirer":"^9.0.3","@types/deepmerge":"^2.2.0"},"_npmOperationalInternal":{"tmp":"tmp/connect-to-forge_1.1.0_1747805904529_0.26890172636702303","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@atlassian/connect-to-forge","version":"2.0.0","description":"Tools to help migrate Atlassian Connect apps to Forge: convert a Connect descriptor to a connect-on-forge manifest, and check your Forge adoption status.","main":"dist/index","bin":{"connect-to-forge":"dist/connect-to-forge.js"},"author":{"name":"Robert Massaioli","email":"connect-on-forge@rmdir.app"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/robertmassaioli/connect-to-forge.git"},"publishConfig":{"registry":"https://packages.atlassian.com/api/npm/npm-public/"},"devDependencies":{"@types/deepmerge":"^2.2.0","@types/inquirer":"^9.0.3","@types/jest":"^30.0.0","@types/js-yaml":"^4.0.5","@types/node":"^20.4.2","jest":"^30.4.2","ts-jest":"^29.4.12","ts-loader":"^9.4.4","ts-node":"^10.9.1","typescript":"^5.1.6","webpack":"^5.88.2","webpack-cli":"^5.1.4"},"dependencies":{"axios":"^1.18.1","commander":"^11.0.0","deepmerge":"^4.3.1","inquirer":"^8.2.4","js-yaml":"^4.1.0","ts-is-present":"^1.2.2"},"resolutions":{"tmp":"^0.2.4"},"scripts":{"start":"ts-node src/index.ts","start-jira":"ts-node src/index.ts convert --type jira --url","start-conf":"ts-node src/index.ts convert --type confluence --url","build":"tsc -p ./tsconfig.json","prepack":"webpack --mode production --config webpack.config.js","test":"jest"},"jest":{"preset":"ts-jest","testEnvironment":"node","testMatch":["**/src/__tests__/**/*.test.ts"]},"_id":"@atlassian/connect-to-forge@2.0.0","bugs":{"url":"https://github.com/robertmassaioli/connect-to-forge/issues"},"homepage":"https://github.com/robertmassaioli/connect-to-forge#readme","_integrity":"sha512-+/OHTQTF413ot7TgqwA2EliuteCLK0toQLFzlCl3OMkpEb7rLYGRgJRUJVEKT4cykRfebBQpAjEhAhDBcrjCPw==","_resolved":"/tmp/package-1-6a6a8605-05551f4066c4d197bc5704bb-1.tgz","_from":"file:/tmp/package-1-6a6a8605-05551f4066c4d197bc5704bb-1.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+/OHTQTF413ot7TgqwA2EliuteCLK0toQLFzlCl3OMkpEb7rLYGRgJRUJVEKT4cykRfebBQpAjEhAhDBcrjCPw==","shasum":"0e17ce3d99c3f341b13395f3926d9b49cf42f60e","tarball":"https://registry.npmjs.org/@atlassian/connect-to-forge/-/connect-to-forge-2.0.0.tgz","fileCount":4,"unpackedSize":1022346,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFCAgiNEMG3HoQMQ6dRSSYZ9ZOt55TfqGzA5oFjSZPmAAiEAksKdnFZlxiaa0j9aFDTKVd2g/H+wbOYGtc0LOnsjoAk="}]},"_npmUser":{"name":"atlassianartifactteam","email":"eng-development-tooling-artifacts@atlassian.com"},"directories":{},"maintainers":[{"name":"atlassianartifactteam","email":"eng-development-tooling-artifacts@atlassian.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/connect-to-forge_2.0.0_1785366024220_0.33092472189499356"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-16T03:29:54.667Z","modified":"2026-07-29T23:00:24.585Z","1.0.24":"2025-05-16T03:29:55.045Z","1.1.0":"2025-05-21T05:38:24.859Z","2.0.0":"2026-07-29T23:00:24.421Z"},"bugs":{"url":"https://github.com/robertmassaioli/connect-to-forge/issues"},"author":{"name":"Robert Massaioli","email":"connect-on-forge@rmdir.app"},"license":"MIT","homepage":"https://github.com/robertmassaioli/connect-to-forge#readme","repository":{"type":"git","url":"git+https://github.com/robertmassaioli/connect-to-forge.git"},"description":"Tools to help migrate Atlassian Connect apps to Forge: convert a Connect descriptor to a connect-on-forge manifest, and check your Forge adoption status.","maintainers":[{"name":"atlassianartifactteam","email":"eng-development-tooling-artifacts@atlassian.com"}],"readme":"## connect-to-forge\n\nA set of tools to help Connect developers migrate their apps to Forge.\n\n## Commands\n\n### `convert` — Convert a Connect descriptor to a Forge manifest\n\nConverts an Atlassian Connect descriptor to a Connect-on-Forge `manifest.yml`, giving you a starting point for your migration.\n\n```bash\nnpx @atlassian/connect-to-forge@latest convert --type <jira|confluence> --url https://website.com/path/to/descriptor.json\n```\n\nIf you want to check out this repository and run it locally:\n\n```bash\nyarn install\nyarn start convert --type <jira|confluence> --url https://website.com/path/to/descriptor.json\n```\n\nWhere `--type` is the Atlassian product the app targets and `--url` is a publicly accessible URL to your Connect descriptor JSON.\n\n---\n\n### `adoption-status` — Check your Forge adoption progress\n\nChecks a Forge `manifest.yml` for remaining Atlassian Connect artefacts and reports your adoption status. Useful at any stage of migration to understand what still needs to be done — or to confirm you are fully adopted.\n\n```bash\nnpx @atlassian/connect-to-forge@latest adoption-status --manifest path/to/manifest.yml\n```\n\nIf you want to run it locally:\n\n```bash\nyarn start adoption-status --manifest path/to/manifest.yml\n```\n\n**Options:**\n\n| Flag | Description | Default |\n|------|-------------|---------|\n| `-m, --manifest <path>` | Path to the Forge manifest file to check | `manifest.yml` |\n| `-s, --strict` | Exit with code 1 if any Connect remnants are found (useful in CI pipelines) | `false` |\n| `--json` | Output results as JSON instead of human-readable text | `false` |\n\n**What it checks:**\n\n| ID | Severity | Description |\n|----|----------|-------------|\n| E001 | Error | `connectModules` is present and non-empty — modules have not been migrated yet |\n| E002 | Error | `app.connect` contains leftover fields beyond `key` |\n| E003 | Error | `app.connect.key` is absent — this key must be retained indefinitely |\n| E004 | Error | Connect-style scopes (e.g. `read:connect-jira`) found in `permissions.scopes` |\n| W001 | Warning | `connectModules` is present but empty |\n| W002 | Warning | `app.id` is still the placeholder value — `forge register` has not been run |\n| W003 | Warning | Module URLs contain Connect-style context parameter tokens (e.g. `{issue.key}`) |\n\n**Example output (fully adopted):**\n\n```\nChecking adoption status of manifest.yml...\n\n✓ No Atlassian Connect modules found in connectModules\n✓ app.connect.key is present\n✓ No extra fields in app.connect beyond key\n✓ No Atlassian Connect scopes in permissions.scopes\n\nAdoption status: Your app is fully adopted on Forge. There are no remaining Atlassian Connect modules or scopes in your manifest.\n```","readmeFilename":"README.md"}