Reads mj-app.json from repoDir and returns the packages a process of tier should
load: shared libraries first (entities/actions register on import), then the tier's own
packages, with each startupExport carried through. Packages whose platform excludes tier
are omitted — an actions package is Node-side and must not be handed to a browser process
(#4428). Returns null when there is no manifest, and throws when a manifest exists but is not
valid JSON or names an invalid platform — a corrupt file is a problem the operator must see,
an absent one is the common case.
Reads
mj-app.jsonfromrepoDirand returns the packages a process oftiershould load:sharedlibraries first (entities/actions register on import), then the tier's own packages, with eachstartupExportcarried through. Packages whose platform excludestierare omitted — an actions package is Node-side and must not be handed to a browser process (#4428). Returnsnullwhen there is no manifest, and throws when a manifest exists but is not valid JSON or names an invalidplatform— a corrupt file is a problem the operator must see, an absent one is the common case.