Code Monkey home page Code Monkey logo

bombino's Introduction

bombino

NPM

Get Started Create Panel Create Template Templates Commands Config

Supercharged rebuild of generators cep-vue-cli and cep-quasar-cli for creating Adobe CEP panel with nodeJS + Vue, includes dynamic template support for Vue-CLI and Quasar-CLI, cloud or private local repositories, and configurable custom tooling presets (user-defined path locations).

Get Started

Install globally using npm i -g bombino then generate your new project and by running bombino.

Or, you may skip installation and generate a project via npx with npx bombino.

It is recommended that you generate your project within a valid CEP extension folder in order to access the panel in your host application:

# Windows: C:\Users\<USERNAME>\AppData\Roaming\CEP\extensions
# macOS: ~/Library⁩/Application Support/Adobe/⁨CEP⁩/extensions

⚠️ If this is your first time developing a CEP panel you may need to bypass the extension signatures check by editing the CSXS preference properties file in order to open the extension in the host application. Be sure to edit the correct properties file according to the CEP version of your host application.


Create Panel

Generate a new panel from local or cloud-based templates in just a few seconds:

If no local templates are found in config, cloud templates are automatically selected. Settings are very similar to generator-cep-vue-cli, but are far more versatile and dynamic in how they're applied, now supporting any Github link (queried on launch, not hardcoded) or any private folder on your own machine.

Note that multiple Inquirer.js instantiations in a Promise chain are known to cause graphical errors -- if you select Bombino default templates and reach the "Want to use the ____ template" or "Select a template" screen, you may need to press Enter before Inquirer receives input. Trying to fix this

Create Template

Take any valid panel and turn it into a usable template, prompting to save to the Create a new Template list in command. This should be used on the parent folder of the template, and will prompt to create a template of any child:

This data is saved locally within a .bombino json config file, supporting the ability to customize relative path location to files alongside placeholder value and RegExp detection depending on your specific needs or tooling preset.


Templates

See more information about usage:

Vue-CLI

Quasar-CLI

  • Panelify (Vuex, Router, Browser Compatible)
  • Plus (Vuex, Router, Lottie, Modal Dialogs)
  • Slim (Modified Plus template with slim style)

Commands

Each template comes with 5 commands baked in (see details here):

  • npm run help - A full list of the commands available and descriptions.
  • npm run switch - Reports whether in developer or production context and can switch automatically.
  • npm run update - Reports current version of panel in manifest and prompts to update Major, Minor, or Micro.
  • npm run register - Reports the current user data (if any) and prompts to save new info to be used in certificates.
  • npm run sign - Automatically stages and signs the extension, placing it in a ./archive directory within the current panel.

Extras

  • starlette (Shipped in all templates) - Color and theming engine that handles all host app colors and exposes them as reactive CSS variables to save you the need to do any theme or color logic yourself.
  • cep-spy (Shipped in all templates) - Lightweight, no dependency utility for revealing all information about the current host app, current panel, environment and even sibling CEP extensions.
  • lokney (Shipped in all templates) - Universal <Panel> and <Menu> utility components to greatly simplify the overhead of Adobe-specific extensions.
  • cluecumber (Shipped in all templates) - Browser-friendly utilities for using CSInterface, opening links, async evalScript, and more.
  • 🔥 brutalism 🔥 - Battleaxe's component library for Adobe CEP panels.
  • panelify - Vue component to create a browser wrapper of any style Adobe host for your extension
  • scriptopia (Already taken care of in bombino templates) - Generate Typescript support for any compatible Adobe app
  • leylo - Library to integrate a Firebase backend into any panel with a single command and line of code, providing over 40 CRUD actions for Firestore database.

Config

Upon creating a new panel or template, a localized .bombino (JSON) file is created to store your settings. This controls all the logic used to find, modify, replace and update your data. The structure is:

{
  // Custom or default tooling, only used to define where the target files are relative to your project.
  // [model-name]: {
  "VUE": {
    "paths": {
      // These are the locations of files which should be targeted for PLACEHOLDER injection
      // [key]: [relative-path],
      "index": "./public/index.html",
      "manifest": "./CSXS/manifest.xml"
      // etc. Note that "relative" is to the template, not the parent folder launching bombino
    }
  },
  // Models are an array of tooling systems (default Vue-CLI and Quasar-CLI). New toolings with specific needs/file-paths can be added here
  "_MODELS": [
    {
      // name: string associated with above [model-name] (must be exact)
      "name": "VUE",
      // label: description to show on prompts of which tooling to use
      "label": "Vue-CLI",
      // placeholders: currently unused, strict cap on which placeholders
      "placeholders": ["name", "title", "hostlist", "hostlist_debug"],
      // exclusive: if this file exists in a repo, know it must be this tooling.
      // This is used to auto-suggest tooling rather than prompt every time.
      "exclusive": "./vue.config.js",
      // isCustom: boolean for whether or not this was a user-generated template
      "isCustom": false
    }
  ],
  // Any user-generated templates to prompt as LOCAL
  "_TEMPLATES": [
    {
      // index: used for sorting to display in list (lower numbers at top)
      "index": 0,
      // name: unique string associated with this template folder
      "name": "bombino-vue-test",
      // label: Description to show in brackets after name within prompts
      "label": "sample Vue",
      // path: if from a private directory, provide the absolute path for download
      "path": "C:\\Users\\TRSch\\AppData\\Roaming\\Adobe\\CEP\\extensions\\bombino-vue-test",
      // model: exact key to match above tooling schema
      "model": "VUE",
      // gitURL: if from a GitHub repo, provide [user]/[repo] for download
      "gitURL": null
    }
  ],
  //
  "_OPTIONS": {
    // dirty: Boolean, if false then this config is the default and hasn't been changed by user.
    "dirty": true,
    // Add a quick prompt for using the last template again (skipping multiple prompts)
    "lastTemplate": "my-custom-template"
    // more to come
  },
  //
  "_PLACEHOLDERS": {
    "name": {
      // value: what to search for or inject. If creating a panel, search for this value.
      // If creating a template, inject this value
      "value": "$BOMBINO_NAME$",
      // templateRX: RegExp to use for combing template if creating a panel
      "templateRX": "/\\$BOMBINO_NAME\\$/gm",
      // settingsKey: exact match of key-value pair within prompt answers, giving value to replace PLACEHOLDER
      "settingsKey": "extName",
      // panelRX: file-specific RegExp to find user-content and replace it with a PLACEHOLDER.
      "panelRX": {
        // Note that keys match the root-level [model-name].paths tooling object
        "manifest": "/\\<Extension\\sId\\=\\\"([\\w|\\.|\\-]*)\\\"/gm",
        // RegExp must be contained in string (as they have no JSON support)
        "index": "/\\<title\\>(.*)\\<\\/title\\>/",
        // The content to replace must be in the First Capture Group (within round brackets)
        "dev": "/\\<title\\>(.*)\\<\\/title\\>/"
      },
      // If this is a static value, you can add optional parameter here to control the injected value (replacing $BOMBINO_NAME$):
      "override": "<%= htmlWebpackPlugin.options.productName %>"
    }
  }
}

Contributors

Special thanks to Adam and Eric for their invaluable help

tom adam eric
Tom Scharstein Adam Plouff Eric Robinson
Creator General Wizardry Inspector General

License

MIT © Tom Scharstein

bombino's People

Contributors

fartinmartin avatar inventsable avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bombino's Issues

Scale layout

Hi!

I need to make the whole layout and all elements larger in scale. Is it possible?

Loading templates fail depending on network connection

⠙ Loading templates...[2020-06-03T06:30:16.660Z] @firebase/firestore: Firestore (7.14.5): Could not reach Cloud Firestore backend. Connection failed 1 times. Most recent error: FirebaseError: [code=unavailable]: 14 UNAVAILABLE: No connection established
This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.
(node:23431) UnhandledPromiseRejectionWarning: Error: 14 UNAVAILABLE: No connection established
at Object.callErrorFromStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
at Object.onReceiveStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/client.js:390:49)
at Object.onReceiveStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:304:181)
at Http2CallStream.outputStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call-stream.js:114:27)
at Http2CallStream.maybeOutputStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call-stream.js:153:22)
at Http2CallStream.endCall (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call-stream.js:140:18)
at Http2CallStream.cancelWithStatus (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call-stream.js:442:14)
at ChannelImplementation.tryPick (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/channel.js:223:32)
at ChannelImplementation._startCallStream (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/channel.js:253:14)
at Http2CallStream.start (/usr/local/lib/node_modules/bombino/node_modules/@grpc/grpc-js/build/src/call-stream.js:419:22)
(node:23431) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:23431) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

How to debug?

For of all thank you so much for making this!

So, I just want print/see all the object members from the jsx file.
for example

(function test() {
    // alert("from jsxx");
    var active = app.project.activeItem;
    if(active instanceof CompItem){
        for (var i = 1; i <= active.layers.length; i++) {
            console.log(active.layer(i));
        }
    }
}())

so how do I print this?

ReferenceError: CSInterface is not defined

In development, everything goes smoothly, but I'm having this issue after I "npm run sign" the extension, it doesn't connect to the JSX and consoles
ReferenceError: CSInterface is not defined
Any idea what might it be?!
Also the -tsa is not working I had to change it to: -tsa http://timestamp.digicert.com

Update:
Fixed it by including csInterface.js in the dist folder, but it never happened before

Uncaught ReferenceError: Cannot access 'root' before initialization

Hey there!
After a fresh and unaltered install with bombino my bombino-vue-basic panel is not rendering. As suggested I am checking the CEF client in Chrome at localhost:8888. The module cep-spy is throwing Uncaught ReferenceError: Cannot access 'root' before initialization error. Am I doing something wrong?

How to load "host.jsx" with <Panel> components "script-path" prop?

I can not get my "host.jsx" loaded with the "script-path" property of the "Panel" component. My code:

# App.vue
<template>
  <div id="app">
    <Panel
      script-path="./host/IDSN/host.jsx"  // path given as the documentation suggests
    >
      <HelloWorld :msg="msg"/>
    </Panel>
    <Menus refresh debug />
  </div>
</template>

# host.jsx
console.log('Host is online');
alert('Host is online');

I'd expect this to already run on app initialization. But it does not. Using loadScript works though:

import { loadScript } from "brutalism";
loadScript("/Users/myName/Library/Application Support/Adobe/CEP/extensions/myExtension/src/host/IDSN/host.jsx")

loadScript successfully triggers the alert (nothing in the console though) but I would prefer a solution with a relative path, obviously. Is there a setting I am missing? Or could it be a bug? I tested the templates "Brutalism Basic" and "Basic".

Panel empty when installed as ZXP and returned value problem in Dev

Hi, thank you for creating these project, it's very helpful

I am using the bombino-quasar-plus template (https://github.com/Inventsable/bombino-quasar-plus) to make a panel for Premiere Pro. I have two issues. The first is that when I'm working in development (with the web server) I can't return values from .jsx file to the javascript. In my javascript I call the jsx methods like that, using the CSInterface :
CSInterface.evalScript('$._PPP_.getEstimatedFileSize()', function(result) { alert(result); });
In dev, the jsx method is called, but then it won't go into the callback method (I debuged the jsx to make sure the returned value is ok). But in prod (without the webserver) it works fine. Any ideas where it might come from ?

My second problem is about packaging and installation of the panel. Currently my panel works fine in dev mode or prod mode, as long as it is in a valid CEP folder. But when I package it into a .zxp archive, and install it using the Adobe command line extension installer, the panel is empty. I see it installed but there i nothing on it. Is there anything special to do for the packaging ? ( I excluded hidden files and folders already).

Thanks

Can't call functions from the host.jsx or Console.jsx. WHY?

Hi, please I thank you for your time.

I have an issue with my newly created project. I am in Tab2.vue, or App.vue. I am trying to call code in one of the host files, for example PHXS > host.jsx, or universal > Console.jsx. I have a simple function like this

var console = {
  log: function(data) {
    JSXEvent(data, "console");
  },
  alert: function(message)
  {
    alert("Alert from universal Console: " + message.toString());
  }
};

Now in the .vue file, I try to call that function like this:

universalAlert(message) {
      message = "Called from Tab2.vue";
      this.app.csInterface.evalScript(`console.alert("${message}")`);
    }

But the alert is not happening. HOWEVER, when I switch to production mode, it works. But this is not idea because I need the hot reload for easy programming and testing purposes.

MY QUESTION: Am I missing something, or doing this the wrong way? Or is this a bug?

Thank you!

Guy M.

Creating template from Vue-CLI model injects Quasar variables in ./public/index.html

Upon creating a new template, bombino is injecting Quasar variables into the index.html file like so:

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="$BOMBINO_QUASAR_DESC$" />
    <meta name="viewport" content="width=device-width$BOMBINO_QUASAR_WIDTH$"/>
    <title>$BOMBINO_QUASAR_HEADER$</title>
    <script src="./CSInterface.js"></script>

This instead should be:

<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <title>$BOMBINO_NAME$</title>
    <script src="./CSInterface.js"></script>

Will be looking into why this is happening. If not fixed in the template, upon creating a new panel from this template and using npm run serve it throws an error about HTMLWebpackPlugin.ctx not existing.

Debugging the panel

Hi again,

Thanks for your help earlier today. So I've gotten to a stage where I've got some elements in my panel and Vue is working nicely with it too. But I can't for anything seem to be able to debug stuff with console.log. Not sure if there is a better way too.

My .debug file is:
bm2

And I can get to Chrome and see the debug screen. But nothing seems to be tracing. I do get a
document.registerElement is not a function

not sure if it's my code or default panel setup. error like the one below.

UI.themeSupport=new UI.ThemeSupport(themeSetting);UI.themeSupport.applyTheme(document);var body=(document.body);UI.appendStyle(body,'ui/inspectorStyle.css');UI.GlassPane.setContainer((document.body));};UI.beautifyFunctionName=function(name){return name||Common.UIString('(anonymous)');};UI.registerCustomElement=function(localName,typeExtension,prototype){return document.registerElement(typeExtension,{prototype:Object.create(prototype),extends:localName});};UI.createTextButton=function(text,clickHandler,className,primary){var element=createElementWithClass('button',className||'','text-button');element.textContent=text;if(primary)

bm1

Extension not starting in AE

Hi there,

I'm coming back to using this after some time and I'm now facing an issue where the extension is not showing or opening at all when I click on it through Window > Extensions, I previously faced this issue some months ago but it was resolved by setting up debugging unsigned extensions with PlayerDebugMode, but now even after ensuring that value is set to 1, I am facing the same issue, could it be a problem with the newer version of AE?

I'm simply trying to run the un-changed bombino-brutalism-router template, it appears in the Extensions menu, but clicking it does nothing, not sure if there's something else I could be doing wrong here? and not sure where to start to debug this issue, any assistance would be greatly appriciated!

Many thanks,
Steve

How to use libs such as ffmpeg, opencv etc

Hello !

I've started CEP development with your super cool generator (thanks so much for creating that).
I was wondering if using libs such as ffmpeg, youtube-dl, or opencv in Adobe CEP would be possible ?
For what I understand Adobe uses NW.js. I think I would have to make static builds of the binaries I want to use for Windows & Mac.
But then how would you create 2 builds of the Extension with the right binaries in it ? Is that even recommended ?

Thanks !

Packaged .zxp file includes all the VUE panels...Why?

Hello! When I run npm run sign to make the .zxp file, it create the file, but when I open the .zxp file, I can see the "src" folder with all of my created .vue panels and the index-dev.html. Are these files supposed to be included in the .zxp file? I know maybe "src\host" folder should be included since my .jsx files are in there, but all the other non-necessary files are included in the .zxp file. Is there a way to just include the necessary files needed to make the panel work?

Thanks!

How to talk to host via csInterface

Hey there,

I successfully set up a "bombino-vue-basic" extension template and am trying to connect to my host app (InDesign) via the csInterface but I struggle.

<template>
  <div class="centered">
    <img alt="Vue logo" src="../assets/logo.png" />
    <h1 class="centered">{{ msg }}</h1>
    <div class="button" @click="test()">Click</div>
  </div>
</template> 

<script>
export default {
  name: "HelloWorld",
  props: {
    msg: String
  },
  methods: {
    test() {
      this.app.csInterface.evalScript(alert("Inside of host"));  // I'd expected this to work
      // alert("Outside of host");  // this code works if not commented out
    }
  }
};
</script>
<!-- code cut of for clarity -->

I have to admit I am punching way above my weight here, since I only ever used plain .jsx scripts before. But since the bombino templating works so well, I hoped to get into it more.

Is there maybe a simple test file for a working csInterface implementation?

Edit:
Console log shows Cannot read property 'evalScript' of undefined so csInterface is not assigned it seems.

No such file or directory AND can not find the .zxp in ./archive/

⠹ Running ZXPSignCmd for you...
./ZXPSignCmd -selfSignedCert US NY SomeOrg SomeName hello-world ./Hello-World/archive/temp1.p12
/bin/sh: ./ZXPSignCmd: No such file or directory
⠴ Running ZXPSignCmd for you...
./ZXPSignCmd -sign ./Hello-World_1.0.0-tmp ./Hello-World/archive/Hello-World_1.0.0.zxp ./Hello-World/archive/temp1.p12 hello-world -tsa http://time.certum.pl
/bin/sh: ./ZXPSignCmd: No such file or directory
⠧ Running ZXPSignCmd for you.../bin/sh: ./ZXPSignCmd: No such file or directory

./ZXPSignCmd -verify ./Hello-World/archive/Hello-World_1.0.0.zxp -certinfo
/bin/sh: ./ZXPSignCmd: No such file or directory

  ✔ SIGNING COMPLETE  

  HELLO-WORLD_1.0.0.ZXP IS READY  

You can find it in ./archive/Hello-World_1.0.0.zxp

have any plans to upgrade?

excellent! But I want to use vue3. Do you have any plans to upgrade? I am using the "bombino quasar plus" template. Thank you for your work

New CORS policy for ILST >=25.3 and newest versions of other apps break DEVELOPMENT context

I've yet to implement the solution for this in the templates but just in case any one has an issue with old versions of the panel in the future (if a template was generated prior to this fix and you're just now coming back to it or notice a bombino panel failing on evalScript returns in new versions of the apps) there is a new CORS policy in Adobe apps which blocks <iframe> elements from accessing evalScript return values, which is critical for bombino because the DEVELOPER context is done through an iframe. For instance, in the code below:

let result = await evalScript(`
  (function() {
    alert("Hello world");     // This will always run in both contexts
    return app.name;          // This will only run in production (for now)
  }())
`)
console.log(result);          // This will only work/run in production context
console.log("Goodbye");       // This will always run in both contexts

CEP will cause a silent failure in new versions of apps when attempting to return an evalScript value from DEVELOPER context, but this has no affect on PRODUCTION. You will notice that, in any panel which relies on returning values from an evalScript call, DEVELOPER context will be broken.

I'll be updating all templates within the next two days as I've already fixed and addressed this in my own projects, but wanted to document this for posterity. Thanks for using bombino! 👍

CEP 11: evalScript no longer executes callbacks when in iframed context

When trying an app built with Bombino in AE 18.4 (Beta, prerelease) that has CEP11 embedded in it, then calling
window.__adobe_cep__.evalScript("app", function(r){console.log(r)}); inside the iframed app (localhost:8080) no longer executes the callback, unlike in CEP 10 and before.

I'm not sure it is related to any of the 4 points listed by Adobe here

Are there any changes needed to apply to the config that will make JSX (extendcsript) accessible again within the iframe, including invoking the callbacks?

thnx in advance

How to get the panel to show and not my local web server?

Firstly just want to say thank you for this amazing library. Saves soo much time in kick starting a project compared to manually setting up a CEP extension.

That said though I'm having some issues with Adobe Animate and getting a panel to show. I can create a new adobe extension just fine and I can see it in Adobe Animate under the extensions without any issue. However when the panel opens it shows me my local web server's base page - Laragon in my case. Not quite sure what I'm doing wrong but guess it might be something to do with port numbers maybe?

Any help would be greatly appreciated. Thank you.

adobe-extension-bombino

evalScript broken in CEP 11 / templates install with legacy dependencies

I am a quite lost after moving to CEP 11. I got the hang of CEP 10 / Bombino and Vue and signed a handful of pretty awesome lifesavers.

Now I read about CORS, but still don’t get it. Where it’s about return values/callbacks, I would just like to send functions with parameters to my host AEFT.

Trying to create a new Bombino project. The createEventChain.js is there, index-dev.html looks good already.

// this used to work, just some function with some vars. Now AE hangs without any log.
let msg = {
          someVar: this.myVar,
};
let result = await evalScript(
`myFunction('${JSON.stringify(msg)}')`
);

// this works, just adding some layer in AE
let result = await evalScript(`
  (function() {
    var myComp = app.project.activeItem;
    var shapeLayer = myComp.layers.addShape();
  }())
`)

Is this how it’s supposed to work now? Or was this always the idea?
As I said, I'm lost, spending hours to find the way, but not sure if I even understand what the right way is. Can anyone tell me what the right direction is? Many thanks.

require not defined error running in Chrome window

external "events"?7a7e:1 Uncaught ReferenceError: require is not defined
at eval (external "events"?7a7e:1)
at Object.events (app.js:1139)
at webpack_require (app.js:854)
at fn (app.js:151)
at eval (emitter.js?a6bd:1)
at Object../node_modules/webpack/hot/emitter.js (chunk-vendors.js:6015)
at webpack_require (app.js:854)
at fn (app.js:151)
at eval (dev-server.js?6895:50)
at Object../node_modules/webpack/hot/dev-server.js (chunk-vendors.js:6004)
popup.js:15 Uncaught TypeError: Cannot read property 'onUpdated' of undefined
at popup.js:15

error

` node scripts/postinstall

npm WARN @grpc/[email protected] requires a peer of [email protected] || 6.x but none is installed. You must install peer dependencies yourself.

  • [email protected]
    added 6 packages from 3 contributors, removed 1120 packages and updated 253 packages in 17.185s
    cymmetriktangcom:bom tangqihua$ bombino

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@ @@@@ @@@ @@@ @@@ @@@ @@% @@ @@@ .@@@@@@@@@
@@@@@@@@ @ @@@ @@@ @@ @@ @@@ @ @@@ @@% & @ @@ #@@ @@@@@@@@
@@@@@@@@ @ .@@ @@@ @@ @ . @@@ @ @@ @@% @@ @@ @@@ @@@@@@@@
@@@@@@@@ @@@. @@@ @. @ @@@ @@@ @@% @@@ @@@ @@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

WELCOME TO BOMBINO

? What would you like to do? Create a new Adobe panel
? Name of panel? TangApp
? Use your custom templates or bombino defaults? Static (no internet)

✔ 9 TEMPLATES AVAILABLE

? What tooling preset should be used? Vue-CLI
? Which Vue-CLI template should be used? bombino-brutalism-vuex (Vue-CLI, brutal
ism, router, vuex)
? Host apps to include: Illustrator
? Base CEF Port (between 1024 and 65534) 8888
? Run npm install for you? Yes
⠞ Downloading template from Inventsable/bombino-brutalism-vuex...
✔ DOWNLOAD COMPLETE

⠋ Correcting placeholders...
✔ CORRECTIONS COMPLETE
⠋ Running npm install for you...npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
⠙ Running npm install for you...npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
⠚ Running npm install for you...

[email protected] install /Library/Application Support/Adobe/CEP/extensions/bom/TangApp/node_modules/watchpack-chokidar2/node_modules/fsevents
node install.js

⠲ Running npm install for you... SOLINK_MODULE(target) Release/.node
⠞ Running npm install for you... CXX(target) Release/obj.target/fse/fsevents.o
⠓ Running npm install for you... SOLINK_MODULE(target) Release/fse.node
⠋ Running npm install for you...

[email protected] install /Library/Application Support/Adobe/CEP/extensions/bom/TangApp/node_modules/webpack-dev-server/node_modules/fsevents
node install.js

⠓ Running npm install for you... SOLINK_MODULE(target) Release/.node
CXX(target) Release/obj.target/fse/fsevents.o
⠓ Running npm install for you... SOLINK_MODULE(target) Release/fse.node
⠋ Running npm install for you...

[email protected] install /Library/Application Support/Adobe/CEP/extensions/bom/TangApp/node_modules/yorkie
node bin/install.js

⠙ Running npm install for you...setting up Git hooks
can't find .git directory, skipping Git hooks installation
⠞ Running npm install for you...

[email protected] postinstall /Library/Application Support/Adobe/CEP/extensions/bom/TangApp/node_modules/core-js
node -e "try{require('./postinstall')}catch(e){}"

⠖ Running npm install for you...Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:

https://opencollective.com/core-js
https://www.patreon.com/zloirock

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)

[email protected] postinstall /Library/Application Support/Adobe/CEP/extensions/bom/TangApp/node_modules/ejs
node ./postinstall.js

⠦ Running npm install for you...Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)

⠲ Running npm install for you...npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":"<8.10.0"} (current: {"node":"12.16.1","npm":"6.13.4"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]

added 1359 packages from 886 contributors in 30.277s
⠚ Running npm install for you...
44 packages are looking for funding
run npm fund for details

⠞ Running npm install for you...
✔ INSTALL COMPLETE

╭──────────────────────╮
│ │
│ TANGAPP IS READY │
│ │
╰──────────────────────╯

Ready to get started? Run the following commands:

cd TangApp
npm run serve

Then launch your desired host app and find in Window > Extensions

You can use npm run help at any time inside the panel to see a full list of commands.

cymmetriktangcom:bom tangqihua$ cd TangApp
cymmetriktangcom:TangApp tangqihua$ npm run serve

[email protected] serve /Library/Application Support/Adobe/CEP/extensions/bom/TangApp
vue-cli-service serve

INFO Starting development server...
40% building 217/264 modules 47 active ...es/core-js/internals/dom-iterables.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
63% building 444/478 modules 34 active ...ct-get-own-property-names-external.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 491/532 modules 41 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 492/532 modules 40 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 493/532 modules 39 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 494/532 modules 38 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 495/532 modules 37 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
65% building 496/532 modules 36 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 497/532 modules 35 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 498/532 modules 34 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 499/532 modules 33 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 500/532 modules 32 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 501/532 modules 31 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 502/532 modules 30 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 503/532 modules 29 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
66% building 505/532 modules 27 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
67% building 506/532 modules 26 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
67% building 507/532 modules 25 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
67% building 508/532 modules 24 active ...odules/core-js/internals/is-regexp.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 519/535 modules 16 active ...core-js/modules/es.symbol.iterator.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 520/535 modules 15 active ...core-js/modules/es.symbol.iterator.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 521/537 modules 16 active ...es/core-js/internals/string-repeat.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 522/537 modules 15 active ...es/core-js/internals/string-repeat.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 523/537 modules 14 active ...es/core-js/internals/string-repeat.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 528/542 modules 14 active ...js/internals/regexp-sticky-helpers.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 537/549 modules 12 active ....vue?vue&type=style&index=0&lang=css&You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 538/549 modules 11 active ....vue?vue&type=style&index=0&lang=css&You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
68% building 539/549 modules 10 active ....vue?vue&type=style&index=0&lang=css&You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
69% building 544/552 modules 8 active ...ntime/helpers/esm/nonIterableSpread.jsYou did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
69% building 584/588 modules 4 active ...r.vue?vue&type=style&index=0&lang=css&You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
69% building 587/588 modules 1 active ...r.vue?vue&type=style&index=0&lang=css&You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js.
98% after emitting CopyPlugin

DONE Compiled successfully in 6173ms 9:49:33

App running at:

Note that the development build is not optimized.
To create a production build, run npm run build.

`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.