diff --git a/package.json b/package.json index 1b6464d262a..734ef1caaf5 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,11 @@ "keywords": [ "ember-addon" ], + "exports": { + "./*": "./dist/packages/*", + "./dist/ember-template-compiler.js": "./dist/ember-template-compiler.js", + "./package.json": "./package.json" + }, "homepage": "https://emberjs.com/", "bugs": { "url": "https://github.com/emberjs/ember.js/issues" @@ -174,7 +179,8 @@ "node": ">= 18.*" }, "ember-addon": { - "after": "ember-cli-legacy-blueprints" + "after": "ember-cli-legacy-blueprints", + "type": "addon" }, "typesVersions": { "*": { diff --git a/rollup.config.mjs b/rollup.config.mjs index e7b775fee36..beaa74fcec4 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,5 +1,5 @@ import { dirname, parse, resolve, join } from 'node:path'; -import { existsSync, readFileSync, statSync } from 'node:fs'; +import { existsSync, readFileSync, statSync, writeFileSync } from 'node:fs'; import { createRequire } from 'node:module'; import { fileURLToPath } from 'node:url'; import glob from 'glob'; @@ -71,6 +71,7 @@ function esmConfig() { version(), resolvePackages({ ...exposedDependencies(), ...hiddenDependencies() }), pruneEmptyBundles(), + packageMeta(), ], }; } @@ -498,6 +499,30 @@ function pruneEmptyBundles() { }; } +function packageMeta() { + let renamedModules = Object.fromEntries( + glob + .sync('**/*.js', { cwd: 'dist/packages', ignore: ['shared-chunks/**'], nodir: true }) + .map((name) => { + return [name, 'ember-source/' + name]; + }) + ); + return { + name: 'package-meta', + buildEnd(error) { + if (error) { + return; + } + let pkg = JSON.parse(readFileSync('package.json')); + if (!pkg['ember-addon']) { + pkg['ember-adodn'] = {}; + } + pkg['ember-addon']['renamed-modules'] = renamedModules; + writeFileSync('package.json', JSON.stringify(pkg, null, 2)); + }, + }; +} + function handleRollupWarnings(level, log, handler) { switch (log.code) { case 'CIRCULAR_DEPENDENCY':