{"id":19623069,"url":"https://github.com/fusepilot/parcel-plugin-cep","last_synced_at":"2025-08-17T21:15:29.816Z","repository":{"id":49898500,"uuid":"115880678","full_name":"fusepilot/parcel-plugin-cep","owner":"fusepilot","description":"Zero configuration CEP extension builder for Parcel","archived":false,"fork":false,"pushed_at":"2021-06-08T15:44:30.000Z","size":61,"stargazers_count":34,"open_issues_count":6,"forks_count":14,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-01T04:10:54.556Z","etag":null,"topics":["adobe","cep","parcel"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fusepilot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-31T19:00:32.000Z","updated_at":"2024-06-03T01:55:56.000Z","dependencies_parsed_at":"2022-09-13T04:40:24.572Z","dependency_job_id":null,"html_url":"https://github.com/fusepilot/parcel-plugin-cep","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fusepilot/parcel-plugin-cep","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusepilot%2Fparcel-plugin-cep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusepilot%2Fparcel-plugin-cep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusepilot%2Fparcel-plugin-cep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusepilot%2Fparcel-plugin-cep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fusepilot","download_url":"https://codeload.github.com/fusepilot/parcel-plugin-cep/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fusepilot%2Fparcel-plugin-cep/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270907429,"owners_count":24665962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe","cep","parcel"],"created_at":"2024-11-11T11:31:33.436Z","updated_at":"2025-08-17T21:15:29.789Z","avatar_url":"https://github.com/fusepilot.png","language":"JavaScript","readme":"# Parcel CEP Plugin\n\nZero configuration CEP extension builder for [Parcel](https://github.com/parcel-bundler/parcel).\n\n## Quick Start\n\n```sh\ngit clone https://github.com/fusepilot/parcel-plugin-cep-starter.git\ncd parcel-plugin-cep-starter\nnpm\nnpm run start\n```\n\nOpen your CC app of choice, find your extension under `Window` \u003e `Extensions`, and start developing.\n\n### Building\n\nTo create a production build:\n\n```sh\nnpm run build\n```\n\n### Packaging\n\nTo create a .zxp for deployment:\n\n```sh\nnpm run zxp\n```\n\nA versioned .zxp file will be placed inside `archive`.\n\n## CEP Configuration\n\nYou can configure CEP a either through environment variables or the `package.json` of your project.\n\n### package.json\n\n```json\n\"cep\": {\n    \"name\": \"My Extension\",\n    \"id\": \"com.mycompany.myextension\",\n    \"hosts\": \"*\"\n}\n```\n\n### Environment Variables\n\nEither `set` thorugh your terminal or add to the `.env` file.\n\n```bash\nNAME=\"My Extension\"\nBUNDLE_ID=\"com.mycompany.myextension\"\nHOSTS=\"*\"\n```\n\n### Options\n\n#### Id\n\nThis is the unique id of the extension.\n\n#### Version\n\nThis sets the version of the bundle.\n\n#### Name\n\nThis sets the name of extension as it will show in the application.\n\n#### Hosts\n\nBy default, the extension will target all known Adobe hosts. To target specific hosts, uncomment the `HOSTS` variable to `.env` and modify the list of the hosts you want to target.\n\nFor example, to target just Illustrator and After Effects, you would add this to your `.env` file:\n\n```bash\nHOSTS=\"ILST, AEFT\"\n```\n\nAnd to target specific versions:\n\n```bash\nHOSTS=\"ILST, IDSN@*, PHXS@6.0, AEFT@[5.0,10.0]\"\n```\n\nThis will target all versions of Illustrator and In Design, Photoshop 6.0, and After Effects 5.0 - 10.0.\n\n#### Icon\n\nTo add a custom panel icon, add all [icon files](https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_8.x/Documentation/CEP%208.0%20HTML%20Extension%20Cookbook.md#high-dpi-panel-icons) inside the `public` folder and set their paths inside your `.env` file:\n\n```bash\nICON_NORMAL=\"./assets/icon-normal.png\"\nICON_ROLLOVER=\"./assets/icon-rollover.png\"\nICON_DARK_NORMAL=\"./assets/icon-dark.png\"\nICON_DARK_ROLLOVER=\"./assets/icon-dark-rollover.png\"\n```\n\n#### Cerificate Signing\n\nIn order to create a valid ZXP, you will need to provide the following variables replaced with the correct information inside your `.env`.\n\n```bash\nCERTIFICATE_COUNTRY=\"US\"\nCERTIFICATE_PROVINCE=\"CA\"\nCERTIFICATE_ORG=\"MyCompany\"\nCERTIFICATE_NAME=\"com.mycompany\"\nCERTIFICATE_PASSWORD=\"mypassword\"\n```\n\n#### Panel Size\n\n```bash\nPANEL_WIDTH=500\nPANEL_HEIGHT=500\n```\n\n## Communicating with Extendscript\n\nThere are few functions that you can import from the `cep-interface` package to ease Extendscript communication from CEP.\n\n#### `loadExtendscript(extendScriptFileName: string): Promise`\n\nLoads and evaluates the specified file in the src/extendscript directory. Returns a promise with the result.\n\n```javascript\nimport { loadExtendscript } from 'cep-interface'\n\nloadExtendscript('index.jsx')\n```\n\n#### `evalExtendscript(code: string): Promise`\n\nEvaluates the specified code. Returns a Promise.\n\n```javascript\nimport { evalExtendscript } from 'cep-interface'\n\nevalExtendscript('alert(\"Hello!\");') // alerts \"Hello!\" inside the app\n```\n\nIf you return a JSON string using [json2](https://github.com/douglascrockford/JSON-js) or similar from Extendscript, you can get the parsed result.\n\n```javascript\nimport { evalExtendscript } from 'cep-interface'\n\nevalExtendscript('JSON.stringifiy({foo: \"bar\"});')\n  .then(result =\u003e console.log(result)) // prints {foo: \"bar\"}\n  .catch(error =\u003e console.warn(error))\n```\n\n## Other functions\n\nThere are a few other functions available in addition.\n\n#### `openURLInDefaultBrowser(url: string)`\n\n```javascript\nimport { openURLInDefaultBrowser } from 'cep-interface'\n\nopenURLInDefaultBrowser('www.google.com')\n```\n\nOpens the url in the default browser. Will also work when viewing outside the target application in a browser.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusepilot%2Fparcel-plugin-cep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffusepilot%2Fparcel-plugin-cep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffusepilot%2Fparcel-plugin-cep/lists"}