Slim, no-dependency utility to dynamically reveal all information about current Adobe host application, active panel using it and even it's sibling CEP extensions, all without needing CSInterface.
npm install cep-spy
// Via import:
import spy from "cep-spy";
// Via require:
const spy = require("cep-spy").default;
import spy from "cep-spy";
console.log(spy);
Some are simple wrappers around CSInterface's functions but returning more useful formats (no need to always JSON.parse
), some return values that CSInterface doesn't even offer but are useful (localhost port, extension version, environment, etc)
import spy from "cep-spy";
spy.launchLocalhost(); // Launches in default browser
console.log(spy.localhost); // Returns `http://localhost:####`
const spy = require("cep-spy").default;
console.log(spy.path.root); // Returns 'C:/Users/.../[your-panel-root]'
console.log(spy.extVersion); // Returns '1.0.0', as defined in manifest.xml
console.log(spy.isDev); // Returns BOOL true if bombino and while hot reloading
console.log(spy.appName); // Returns 'ILST' or current <HostList> param of host app
import spy from "cep-spy";
let siblings = spy.getAllExtensions();
console.log(siblings);
path.root
[STRING]: The absolute path (pre-treated) of the current extensionpath.userData
[STRING]: The absolute path (pre-treated) to CS'suserData
path.commonFiles
[STRING]: The absolute path (pre-treated) to CS'scommonFiles
path.myDocuments
[STRING]: The absolute path (pre-treated) to CS'smyDocuments
path.hostApplication
[STRING]: The absolute path (pre-treated) to the app'shostApplication
executablepackage
[OBJECT]: The JSON-parsed contents of the panel's rootpackage.json
fileextID
[STRING]:id
of the current extension as seen in manifest.xml (egcom.adobe.panel
)author
[STRING/OBJECT]: Returns theauthor
parameter ofpackage.json
, either as a string or an Object withname
,email
, andurl
key-values.extName
[STRING]: Proper name as displayed in Menu of the current extensionextVersion
[STRING]: The major, minor, micro versioning of the extension (eg1.x.x
) in manifest.xmlext
[OBJECT]: Object containing CSInterface data for current extension (height, mainPath, width, windowType, etc.)localhost
[STRING]: The direct URL including"https://localhost:"
of the current extensionisDev
[BOOL]: True if extension"sdocument.location
contains"localhost"
(if bombino panel during hot reload for development)appName
[STRING]: The 4-letter app identifier from<HostList>
(eg"ILST"
,"AEFT"
)appLocale
[STRING]: The language/region locale identifier (eg"en_US"
)appVersion
[STRING]: The major/minor/micro of the host app (eg24.0.0
)userAgent
[STRING]: If OS isWindows
orMac
cepVersion
[STRING]: The major/minor/micro of CEP enginehostCapabilities
[OBJECT]: The extended parameters for host under the same name in CSInterfaceuserId
[STRING]:CSInterface.getCurrentImsUserId()
wrapper (returns null often)exts
[ARRAY]: Array of all CEP extensions (as objects with base data) in current host app.
getAllExtensions()
: Returns array of all extension data including version from each manifest.xmlgetExtData(id)
: Returns extension data object of matchingid
openExtension(ext)
: Requests a given extension launch by extension data objectgetVersion(ext)
: Returns a major/minor/micro from given extension data objectlaunchLocalhost()
: Launches any given localhost or the current extension's localhost if nonelaunchHomepage()
: Launches the homepage given inpackage.json
'shomepage
attributelaunchGitRepo()
: Launches the GitHub repo link given inpackage.json
'srepository
attribute