@qodalis/cli-text-to-image 2.4.2 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qodalis/cli-text-to-image",
3
- "version": "2.4.2",
3
+ "version": "2.5.0",
4
4
  "description": "@qodalis/cli extension for converting text to images.",
5
5
  "author": "Nicolae Lupei, Qodalis Solutions",
6
6
  "license": "MIT",
@@ -22,7 +22,7 @@
22
22
  "umd": "./umd/index.global.js",
23
23
  "unpkg": "./umd/index.global.js",
24
24
  "dependencies": {
25
- "@qodalis/cli-core": "2.4.2"
25
+ "@qodalis/cli-core": "2.5.0"
26
26
  },
27
27
  "sideEffects": false,
28
28
  "main": "./public-api.js",
package/public-api.js CHANGED
@@ -5,7 +5,7 @@ var cliCore = require('@qodalis/cli-core');
5
5
  // src/lib/processors/cli-text-to-image-command-processor.ts
6
6
 
7
7
  // src/lib/version.ts
8
- var LIBRARY_VERSION = "2.4.2";
8
+ var LIBRARY_VERSION = "2.5.0";
9
9
  var API_VERSION = 2;
10
10
 
11
11
  // src/lib/processors/cli-text-to-image-command-processor.ts
package/public-api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":["DefaultLibraryAuthor","joinShellWords","getPluginConfigValue","CliForegroundColor"],"mappings":";;;;;;;AAEO,IAAM,eAAA,GAAkB,OAAA;AACxB,IAAM,WAAA,GAAc,CAAA;;;ACW3B,IAAM,aAAA,GAAgB,GAAA;AACtB,IAAM,cAAA,GAAiB,GAAA;AACvB,IAAM,gBAAA,GAAmB,SAAA;AACzB,IAAM,kBAAA,GAAqB,SAAA;AAC3B,IAAM,YAAA,GAAe,YAAA;AACrB,IAAM,gBAAA,GAAmB,gBAAA;AACzB,IAAM,eAAA,GAAkB,EAAA;AAEjB,IAAM,iCAAN,MAAqE;AAAA,EAkHxE,WAAA,GAAc;AAjHd,IAAA,IAAA,CAAA,OAAA,GAAU,eAAA;AACV,IAAA,IAAA,CAAA,WAAA,GAAc,uBAAA;AACd,IAAA,IAAA,CAAA,MAAA,GAASA,4BAAA;AACT,IAAA,IAAA,CAAA,aAAA,GAAgB,IAAA;AAEhB,IAAA,IAAA,CAAA,QAAA,GAA8C;AAAA,MAC1C,IAAA,EAAM,iBAAA;AAAA,MACN,MAAA,EAAQ,eAAA;AAAA,MACR,mBAAA,EAAqB,gBAAA;AAAA,MACrB,kBAAA,EAAoB;AAAA,KACxB;AAEA,IAAA,IAAA,CAAA,oBAAA,GAAmD;AAAA,MAC/C;AAAA,QACI,GAAA,EAAK,cAAA;AAAA,QACL,KAAA,EAAO,eAAA;AAAA,QACP,WAAA,EAAa,+BAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc,aAAA;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,MAAO;AAAA,UACf,OAAO,OAAO,CAAA,KAAM,QAAA,IAAY,CAAA,IAAK,MAAM,CAAA,IAAK,IAAA;AAAA,UAChD,OAAA,EAAS;AAAA,SACb;AAAA,OACJ;AAAA,MACA;AAAA,QACI,GAAA,EAAK,eAAA;AAAA,QACL,KAAA,EAAO,gBAAA;AAAA,QACP,WAAA,EAAa,gCAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc,cAAA;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,MAAO;AAAA,UACf,OAAO,OAAO,CAAA,KAAM,QAAA,IAAY,CAAA,IAAK,MAAM,CAAA,IAAK,IAAA;AAAA,UAChD,OAAA,EAAS;AAAA,SACb;AAAA,OACJ;AAAA,MACA;AAAA,QACI,GAAA,EAAK,gBAAA;AAAA,QACL,KAAA,EAAO,kBAAA;AAAA,QACP,WAAA,EAAa,uCAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc;AAAA,OAClB;AAAA,MACA;AAAA,QACI,GAAA,EAAK,kBAAA;AAAA,QACL,KAAA,EAAO,YAAA;AAAA,QACP,WAAA,EAAa,iCAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc;AAAA,OAClB;AAAA,MACA;AAAA,QACI,GAAA,EAAK,aAAA;AAAA,QACL,KAAA,EAAO,MAAA;AAAA,QACP,WAAA,EAAa,gDAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,YAAA,EAAc;AAAA;AAClB,KACJ;AAEA,IAAA,IAAA,CAAA,UAAA,GAA4D;AAAA,MACxD;AAAA,QACI,IAAA,EAAM,UAAA;AAAA,QACN,WAAA,EAAa,6BAA6B,gBAAgB,CAAA,CAAA,CAAA;AAAA,QAC1D,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,OAAA;AAAA,QACN,WAAA,EAAa,mCAAmC,aAAa,CAAA,CAAA,CAAA;AAAA,QAC7D,IAAA,EAAM,SAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa,oCAAoC,cAAc,CAAA,CAAA,CAAA;AAAA,QAC/D,IAAA,EAAM,SAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,4CAA4C,gBAAgB,CAAA,CAAA,CAAA;AAAA,QACzE,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,WAAA;AAAA,QACN,WAAA,EAAa,sCAAsC,kBAAkB,CAAA,CAAA,CAAA;AAAA,QACrE,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,uDAAuD,YAAY,CAAA,CAAA,CAAA;AAAA,QAChF,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,SAAA;AAAA,QACN,WAAA,EAAa,+CAA+C,eAAe,CAAA,CAAA,CAAA;AAAA,QAC3E,IAAA,EAAM,SAAA;AAAA,QACN,QAAA,EAAU;AAAA,OACd;AAAA,MACA;AAAA,QACI,IAAA,EAAM,WAAA;AAAA,QACN,WAAA,EAAa,qEAAA;AAAA,QACb,IAAA,EAAM,QAAA;AAAA,QACN,QAAA,EAAU;AAAA;AACd,KACJ;AAEA,IAAA,IAAA,CAAA,eAAA,GAAkB,IAAA;AAElB,IAAA,IAAA,CAAA,OAAA,GAAU,eAAA;AAAA,EAEK;AAAA,EAEf,MAAM,cAAA,CACF,OAAA,EACA,OAAA,EACa;AACb,IAAA,MAAM,IAAA,GAAOC,sBAAA,CAAe,OAAA,CAAQ,KAAA,IAAS,EAAE,CAAA;AAC/C,IAAA,MAAM,KAAA,GAAQ,QAAQ,IAAA,CAAK,OAAO,KAAKC,4BAAA,CAAqB,OAAA,EAAS,eAAA,EAAiB,cAAA,EAAgB,aAAa,CAAA;AACnH,IAAA,MAAM,MAAA,GAAS,QAAQ,IAAA,CAAK,QAAQ,KAAKA,4BAAA,CAAqB,OAAA,EAAS,eAAA,EAAiB,eAAA,EAAiB,cAAc,CAAA;AACvH,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,IAAA,CAAK,UAAU,CAAA,IAAK,gBAAA;AAC7C,IAAA,MAAM,OAAA,GAAU,QAAQ,IAAA,CAAK,SAAS,KAAKA,4BAAA,CAAqB,OAAA,EAAS,eAAA,EAAiB,gBAAA,EAAkB,gBAAgB,CAAA;AAC5H,IAAA,MAAM,SAAA,GAAY,QAAQ,IAAA,CAAK,WAAW,KAAKA,4BAAA,CAAqB,OAAA,EAAS,eAAA,EAAiB,kBAAA,EAAoB,kBAAkB,CAAA;AACpI,IAAA,MAAM,IAAA,GAAO,QAAQ,IAAA,CAAK,MAAM,KAAKA,4BAAA,CAAqB,OAAA,EAAS,eAAA,EAAiB,aAAA,EAAe,YAAY,CAAA;AAC/G,IAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,IAAK,eAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,IAAK,QAAA;AAE/C,IAAA,MAAM,MAAA,GAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAC9C,IAAA,MAAA,CAAO,KAAA,GAAQ,KAAA;AACf,IAAA,MAAA,CAAO,MAAA,GAAS,MAAA;AAChB,IAAA,MAAM,GAAA,GAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAElC,IAAA,IAAI,CAAC,GAAA,EAAK;AACN,MAAA,OAAA,CAAQ,MAAA,CAAO,WAAW,8BAA8B,CAAA;AACxD,MAAA;AAAA,IACJ;AAGA,IAAA,GAAA,CAAI,SAAA,GAAY,OAAA;AAChB,IAAA,GAAA,CAAI,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,KAAA,EAAO,MAAM,CAAA;AAGhC,IAAA,GAAA,CAAI,SAAA,GAAY,SAAA;AAChB,IAAA,GAAA,CAAI,IAAA,GAAO,IAAA;AACX,IAAA,GAAA,CAAI,SAAA,GAAY,SAAA;AAChB,IAAA,GAAA,CAAI,YAAA,GAAe,QAAA;AAGnB,IAAA,MAAM,YAAA,GAAe,QAAQ,OAAA,GAAU,CAAA;AACvC,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,QAAA,CAAS,GAAA,EAAK,MAAM,YAAY,CAAA;AACnD,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,aAAA,CAAc,GAAG,CAAA;AACzC,IAAA,MAAM,eAAA,GAAkB,MAAM,MAAA,GAAS,UAAA;AACvC,IAAA,MAAM,MAAA,GAAA,CAAU,MAAA,GAAS,eAAA,IAAmB,CAAA,GAAI,UAAA,GAAa,CAAA;AAE7D,IAAA,IAAI,CAAA;AACJ,IAAA,IAAI,cAAc,MAAA,EAAQ;AACtB,MAAA,CAAA,GAAI,OAAA;AAAA,IACR,CAAA,MAAA,IAAW,cAAc,OAAA,EAAS;AAC9B,MAAA,CAAA,GAAI,KAAA,GAAQ,OAAA;AAAA,IAChB,CAAA,MAAO;AACH,MAAA,CAAA,GAAI,KAAA,GAAQ,CAAA;AAAA,IAChB;AAEA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAA,EAAA,EAAK;AACnC,MAAA,GAAA,CAAI,SAAS,KAAA,CAAM,CAAC,GAAG,CAAA,EAAG,MAAA,GAAS,IAAI,UAAU,CAAA;AAAA,IACrD;AAGA,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,SAAA,CAAU,WAAW,CAAA;AAC5C,IAAA,MAAM,IAAA,GAAO,QAAA,CAAS,aAAA,CAAc,GAAG,CAAA;AACvC,IAAA,IAAA,CAAK,IAAA,GAAO,OAAA;AACZ,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAC9B,IAAA,IAAA,CAAK,KAAA,EAAM;AACX,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,IAAI,CAAA;AAG9B,IAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACX,OAAA,CAAQ,OAAO,WAAA,CAAY,IAAA,EAAMC,2BAAmB,MAAM,CAAA;AAC9D,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,UAAU,CAAA;AACnC,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAA;AACtD,IAAA,OAAA,CAAQ,MAAA,CAAO,SAAA,CAAU,CAAA,EAAA,EAAK,KAAA,CAAM,MAAM,CAAC,CAAA,EAAA,EAAK,KAAK,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,CAAA;AACnE,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,YAAY,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,CAAE,CAAA;AAC/D,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,YAAY,CAAC,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE,CAAA;AACjE,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,MAAM,CAAC,CAAA,EAAA,EAAK,IAAI,CAAA,CAAE,CAAA;AACtD,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,SAAS,CAAC,CAAA,EAAA,EAAK,OAAO,CAAA,EAAA,CAAI,CAAA;AAC9D,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,WAAW,CAAC,CAAA,EAAA,EAAK,SAAS,CAAA,CAAE,CAAA;AAChE,IAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,UAAU,CAAC,CAAA,EAAA,EAAK,QAAQ,CAAA,CAAE,CAAA;AAC9D,IAAA,IAAI,KAAA,CAAM,SAAS,CAAA,EAAG;AAClB,MAAA,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,EAAA,EAAK,KAAA,CAAM,OAAO,CAAC,CAAA,EAAA,EAAK,KAAA,CAAM,MAAM,CAAA,CAAE,CAAA;AAAA,IACnE;AACA,IAAA,OAAA,CAAQ,OAAO,OAAA,EAAQ;AACvB,IAAA,OAAA,CAAQ,MAAA,CAAO,aAAa,4BAA4B,CAAA;AAAA,EAC5D;AAAA,EAEA,iBAAiB,OAAA,EAAqC;AAClD,IAAA,MAAM,EAAE,QAAO,GAAI,OAAA;AACnB,IAAA,MAAA,CAAO,QAAQ,+DAA+D,CAAA;AAC9E,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,QAAQ,QAAQ,CAAA;AACvB,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,gCAAA,EAAkCA,0BAAA,CAAmB,IAAI,CAAC,CAAA;AAAA,KACtF;AACA,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,QAAQ,UAAU,CAAA;AACzB,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,SAAA,EAAWA,2BAAmB,MAAM,CAAC,6CAA6C,aAAa,CAAA,CAAA;AAAA,KAC3H;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,UAAA,EAAYA,2BAAmB,MAAM,CAAC,6CAA6C,cAAc,CAAA,CAAA;AAAA,KAC7H;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,WAAA,EAAaA,2BAAmB,MAAM,CAAC,6CAA6C,gBAAgB,CAAA,CAAA;AAAA,KAChI;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,aAAA,EAAeA,2BAAmB,MAAM,CAAC,qCAAqC,kBAAkB,CAAA,CAAA;AAAA,KAC5H;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,QAAA,EAAUA,2BAAmB,MAAM,CAAC,wCAAwC,YAAY,CAAA,CAAA;AAAA,KACpH;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,YAAA,EAAcA,2BAAmB,MAAM,CAAC,oCAAoC,gBAAgB,CAAA,CAAA;AAAA,KACxH;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,EAAA,EAAK,OAAO,WAAA,CAAY,WAAA,EAAaA,2BAAmB,MAAM,CAAC,mDAAmD,eAAe,CAAA,CAAA;AAAA,KACrI;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,aAAA,EAAeA,0BAAA,CAAmB,MAAM,CAAC,CAAA,2DAAA;AAAA,KACrE;AACA,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,QAAQ,WAAW,CAAA;AAC1B,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,6BAAA;AAAA,KACJ;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,0DAAA,EAA4DA,0BAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,KACjH;AACA,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,iGAAA;AAAA,KACJ;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,oDAAA,EAAsDA,0BAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,KAC3G;AACA,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,mIAAA;AAAA,KACJ;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,sCAAA,EAAwCA,0BAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,KAC7F;AACA,IAAA,MAAA,CAAO,OAAA,EAAQ;AACf,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,CAAA,kEAAA;AAAA,KACJ;AACA,IAAA,MAAA,CAAO,OAAA;AAAA,MACH,KAAK,MAAA,CAAO,WAAA,CAAY,mCAAA,EAAqCA,0BAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,KAC1F;AAAA,EACJ;AAAA,EAEQ,QAAA,CACJ,GAAA,EACA,IAAA,EACA,QAAA,EACQ;AACR,IAAA,IAAI,CAAC,IAAA,EAAM,OAAO,CAAC,EAAE,CAAA;AAErB,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC5B,IAAA,MAAM,QAAkB,EAAC;AACzB,IAAA,IAAI,WAAA,GAAc,EAAA;AAElB,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACtB,MAAA,MAAM,WAAW,WAAA,GAAc,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,GAAK,IAAA;AAC1D,MAAA,MAAM,OAAA,GAAU,GAAA,CAAI,WAAA,CAAY,QAAQ,CAAA;AAExC,MAAA,IAAI,OAAA,CAAQ,KAAA,GAAQ,QAAA,IAAY,WAAA,EAAa;AACzC,QAAA,KAAA,CAAM,KAAK,WAAW,CAAA;AACtB,QAAA,WAAA,GAAc,IAAA;AAAA,MAClB,CAAA,MAAO;AACH,QAAA,WAAA,GAAc,QAAA;AAAA,MAClB;AAAA,IACJ;AAEA,IAAA,IAAI,WAAA,EAAa;AACb,MAAA,KAAA,CAAM,KAAK,WAAW,CAAA;AAAA,IAC1B;AAEA,IAAA,OAAO,KAAA;AAAA,EACX;AAAA,EAEQ,cAAc,GAAA,EAAuC;AACzD,IAAA,MAAM,OAAA,GAAU,GAAA,CAAI,WAAA,CAAY,IAAI,CAAA;AACpC,IAAA,MAAM,MAAA,GAAS,QAAQ,uBAAA,IAA2B,CAAA;AAClD,IAAA,MAAM,OAAA,GAAU,QAAQ,wBAAA,IAA4B,CAAA;AACpD,IAAA,OAAA,CAAQ,MAAA,GAAS,WAAW,GAAA,IAAO,EAAA;AAAA,EACvC;AACJ;;;ACvTO,IAAM,iBAAA,GAAgC;AAAA,EACzC,UAAA,EAAY,WAAA;AAAA,EACZ,IAAA,EAAM,4BAAA;AAAA,EACN,UAAA,EAAY,CAAC,IAAI,8BAAA,EAAgC,CAAA;AAAA,EACjD,YAAA,EAAc;AAAA,IACV,EAAA,EAAI,EAAE,+BAAA,EAAiC,0BAAA,EAA2B;AAAA,IAClE,EAAA,EAAI,EAAE,+BAAA,EAAiC,6BAAA,EAA8B;AAAA,IACrE,EAAA,EAAI,EAAE,+BAAA,EAAiC,wBAAA,EAAyB;AAAA,IAChE,EAAA,EAAI,EAAE,+BAAA,EAAiC,2BAAA,EAA4B;AAAA,IACnE,EAAA,EAAI,EAAE,+BAAA,EAAiC,8BAAA,EAA+B;AAAA,IACtE,EAAA,EAAI,EAAE,+BAAA,EAAiC,8DAAA,EAAa;AAAA,IACpD,EAAA,EAAI,EAAE,+BAAA,EAAiC,gEAAA,EAAe;AAAA,IACtD,EAAA,EAAI,EAAE,+BAAA,EAAiC,kDAAA,EAAW;AAAA,IAClD,EAAA,EAAI,EAAE,+BAAA,EAAiC,qMAAA,EAAsC;AAAA,IAC7E,EAAA,EAAI,EAAE,+BAAA,EAAiC,+BAAA;AAA6B;AAE5E","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.4.2';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":["DefaultLibraryAuthor","joinShellWords","getPluginConfigValue","CliForegroundColor"],"mappings":"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","file":"public-api.js","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.5.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
package/public-api.mjs CHANGED
@@ -3,7 +3,7 @@ import { DefaultLibraryAuthor, joinShellWords, getPluginConfigValue, CliForegrou
3
3
  // src/lib/processors/cli-text-to-image-command-processor.ts
4
4
 
5
5
  // src/lib/version.ts
6
- var LIBRARY_VERSION = "2.4.2";
6
+ var LIBRARY_VERSION = "2.5.0";
7
7
  var API_VERSION = 2;
8
8
 
9
9
  // src/lib/processors/cli-text-to-image-command-processor.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.4.2';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
1
+ {"version":3,"sources":["../../packages/plugins/text-to-image/src/lib/version.ts","../../packages/plugins/text-to-image/src/lib/processors/cli-text-to-image-command-processor.ts","../../packages/plugins/text-to-image/src/public-api.ts"],"names":[],"mappings":"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","file":"public-api.mjs","sourcesContent":["\n// Automatically generated during build\nexport const LIBRARY_VERSION = '2.5.0';\nexport const API_VERSION = 2;\n ","import {\n CliForegroundColor,\n CliProcessCommand,\n CliProcessorMetadata,\n DefaultLibraryAuthor,\n ICliCommandParameterDescriptor,\n ICliCommandProcessor,\n ICliConfigurationOption,\n ICliExecutionContext,\n getPluginConfigValue,\n joinShellWords,\n} from '@qodalis/cli-core';\nimport { LIBRARY_VERSION } from '../version';\n\nconst DEFAULT_WIDTH = 800;\nconst DEFAULT_HEIGHT = 400;\nconst DEFAULT_BG_COLOR = '#ffffff';\nconst DEFAULT_TEXT_COLOR = '#000000';\nconst DEFAULT_FONT = '30px Arial';\nconst DEFAULT_FILENAME = 'text-image.png';\nconst DEFAULT_PADDING = 40;\n\nexport class CliTextToImageCommandProcessor implements ICliCommandProcessor {\n command = 'text-to-image';\n description = 'Convert text to image';\n author = DefaultLibraryAuthor;\n valueRequired = true;\n\n metadata?: CliProcessorMetadata | undefined = {\n icon: '🖼️',\n module: 'text-to-image',\n requiredCoreVersion: '>=2.0.0 <3.0.0',\n requiredCliVersion: '>=2.0.0 <3.0.0',\n };\n\n configurationOptions?: ICliConfigurationOption[] = [\n {\n key: 'defaultWidth',\n label: 'Default Width',\n description: 'Default image width in pixels',\n type: 'number',\n defaultValue: DEFAULT_WIDTH,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultHeight',\n label: 'Default Height',\n description: 'Default image height in pixels',\n type: 'number',\n defaultValue: DEFAULT_HEIGHT,\n validator: (v) => ({\n valid: typeof v === 'number' && v >= 50 && v <= 4096,\n message: 'Must be between 50 and 4096',\n }),\n },\n {\n key: 'defaultBgColor',\n label: 'Background Color',\n description: 'Default background color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_BG_COLOR,\n },\n {\n key: 'defaultTextColor',\n label: 'Text Color',\n description: 'Default text color (hex format)',\n type: 'string',\n defaultValue: DEFAULT_TEXT_COLOR,\n },\n {\n key: 'defaultFont',\n label: 'Font',\n description: 'Default font specification (e.g. \"30px Arial\")',\n type: 'string',\n defaultValue: DEFAULT_FONT,\n },\n ];\n\n parameters?: ICliCommandParameterDescriptor[] | undefined = [\n {\n name: 'fileName',\n description: `Output filename (default: ${DEFAULT_FILENAME})`,\n type: 'string',\n required: false,\n },\n {\n name: 'width',\n description: `Image width in pixels (default: ${DEFAULT_WIDTH})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'height',\n description: `Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'bgColor',\n description: `Background color in hex format (default: ${DEFAULT_BG_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'textColor',\n description: `Text color in hex format (default: ${DEFAULT_TEXT_COLOR})`,\n type: 'string',\n required: false,\n },\n {\n name: 'font',\n description: `CSS font string, e.g. \"bold 48px Georgia\" (default: ${DEFAULT_FONT})`,\n type: 'string',\n required: false,\n },\n {\n name: 'padding',\n description: `Padding in pixels around the text (default: ${DEFAULT_PADDING})`,\n type: 'integer',\n required: false,\n },\n {\n name: 'textAlign',\n description: 'Horizontal text alignment: left, center, or right (default: center)',\n type: 'string',\n required: false,\n },\n ];\n\n acceptsRawInput = true;\n\n version = LIBRARY_VERSION;\n\n constructor() {}\n\n async processCommand(\n command: CliProcessCommand,\n context: ICliExecutionContext,\n ): Promise<void> {\n const text = joinShellWords(command.value ?? '');\n const width = command.args['width'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultWidth', DEFAULT_WIDTH);\n const height = command.args['height'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultHeight', DEFAULT_HEIGHT);\n const filename = command.args['fileName'] ?? DEFAULT_FILENAME;\n const bgColor = command.args['bgColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultBgColor', DEFAULT_BG_COLOR);\n const textColor = command.args['textColor'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultTextColor', DEFAULT_TEXT_COLOR);\n const font = command.args['font'] ?? getPluginConfigValue(context, 'text-to-image', 'defaultFont', DEFAULT_FONT);\n const padding = command.args['padding'] ?? DEFAULT_PADDING;\n const textAlign = command.args['textAlign'] || 'center';\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n context.writer.writeError('Failed to get canvas context');\n return;\n }\n\n // Fill background\n ctx.fillStyle = bgColor;\n ctx.fillRect(0, 0, width, height);\n\n // Configure text rendering\n ctx.fillStyle = textColor;\n ctx.font = font;\n ctx.textAlign = textAlign as CanvasTextAlign;\n ctx.textBaseline = 'middle';\n\n // Wrap and render text\n const maxTextWidth = width - padding * 2;\n const lines = this.wrapText(ctx, text, maxTextWidth);\n const lineHeight = this.getLineHeight(ctx);\n const totalTextHeight = lines.length * lineHeight;\n const startY = (height - totalTextHeight) / 2 + lineHeight / 2;\n\n let x: number;\n if (textAlign === 'left') {\n x = padding;\n } else if (textAlign === 'right') {\n x = width - padding;\n } else {\n x = width / 2;\n }\n\n for (let i = 0; i < lines.length; i++) {\n ctx.fillText(lines[i], x, startY + i * lineHeight);\n }\n\n // Trigger download\n const dataUrl = canvas.toDataURL('image/png');\n const link = document.createElement('a');\n link.href = dataUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n // Report applied options\n const label = (name: string) =>\n context.writer.wrapInColor(name, CliForegroundColor.Yellow);\n context.writer.writeInfo('Options:');\n context.writer.writeInfo(` ${label('Text')}: ${text}`);\n context.writer.writeInfo(` ${label('Size')}: ${width} x ${height}`);\n context.writer.writeInfo(` ${label('Background')}: ${bgColor}`);\n context.writer.writeInfo(` ${label('Text color')}: ${textColor}`);\n context.writer.writeInfo(` ${label('Font')}: ${font}`);\n context.writer.writeInfo(` ${label('Padding')}: ${padding}px`);\n context.writer.writeInfo(` ${label('Alignment')}: ${textAlign}`);\n context.writer.writeInfo(` ${label('Filename')}: ${filename}`);\n if (lines.length > 1) {\n context.writer.writeInfo(` ${label('Lines')}: ${lines.length}`);\n }\n context.writer.writeln();\n context.writer.writeSuccess('Image created successfully');\n }\n\n writeDescription(context: ICliExecutionContext): void {\n const { writer } = context;\n writer.writeln('Convert text into a downloadable PNG image with word wrapping');\n writer.writeln();\n writer.writeln('Usage:');\n writer.writeln(\n ` ${writer.wrapInColor('text-to-image <text> [options]', CliForegroundColor.Cyan)}`,\n );\n writer.writeln();\n writer.writeln('Options:');\n writer.writeln(\n ` ${writer.wrapInColor('--width', CliForegroundColor.Yellow)} Image width in pixels (default: ${DEFAULT_WIDTH})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--height', CliForegroundColor.Yellow)} Image height in pixels (default: ${DEFAULT_HEIGHT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--bgColor', CliForegroundColor.Yellow)} Background color in hex (default: ${DEFAULT_BG_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textColor', CliForegroundColor.Yellow)} Text color in hex (default: ${DEFAULT_TEXT_COLOR})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--font', CliForegroundColor.Yellow)} CSS font string (default: ${DEFAULT_FONT})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--fileName', CliForegroundColor.Yellow)} Output filename (default: ${DEFAULT_FILENAME})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--padding', CliForegroundColor.Yellow)} Padding around text in pixels (default: ${DEFAULT_PADDING})`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('--textAlign', CliForegroundColor.Yellow)} Text alignment: left, center, right (default: center)`,\n );\n writer.writeln();\n writer.writeln('Examples:');\n writer.writeln(\n ` text-to-image \"Hello World\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Download a centered 800x400 image with default styling', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Welcome Banner\" --bgColor=#1a1a2e --textColor=#e0e0e0 --font=\"bold 48px Georgia\"`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Dark background with light text in a custom font', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"This is a long paragraph that will automatically wrap to fit within the image boundaries\" --width=600 --height=300`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Long text is wrapped automatically', CliForegroundColor.Green)}`,\n );\n writer.writeln();\n writer.writeln(\n ` text-to-image \"Left aligned notes\" --textAlign=left --padding=60`,\n );\n writer.writeln(\n ` ${writer.wrapInColor('# Left-aligned with extra padding', CliForegroundColor.Green)}`,\n );\n }\n\n private wrapText(\n ctx: CanvasRenderingContext2D,\n text: string,\n maxWidth: number,\n ): string[] {\n if (!text) return [''];\n\n const words = text.split(' ');\n const lines: string[] = [];\n let currentLine = '';\n\n for (const word of words) {\n const testLine = currentLine ? `${currentLine} ${word}` : word;\n const metrics = ctx.measureText(testLine);\n\n if (metrics.width > maxWidth && currentLine) {\n lines.push(currentLine);\n currentLine = word;\n } else {\n currentLine = testLine;\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n private getLineHeight(ctx: CanvasRenderingContext2D): number {\n const metrics = ctx.measureText('Mg');\n const ascent = metrics.actualBoundingBoxAscent ?? 0;\n const descent = metrics.actualBoundingBoxDescent ?? 0;\n return (ascent + descent) * 1.4 || 36;\n }\n}\n","/*\n * Public API Surface of text-to-image\n */\n\nexport * from './lib/processors/cli-text-to-image-command-processor';\n\nimport { ICliModule } from '@qodalis/cli-core';\nimport { CliTextToImageCommandProcessor } from './lib/processors/cli-text-to-image-command-processor';\nimport { API_VERSION } from './lib/version';\n\nexport const textToImageModule: ICliModule = {\n apiVersion: API_VERSION,\n name: '@qodalis/cli-text-to-image',\n processors: [new CliTextToImageCommandProcessor()],\n translations: {\n es: { 'cli.text-to-image.description': 'Convertir texto a imagen' },\n fr: { 'cli.text-to-image.description': 'Convertir du texte en image' },\n de: { 'cli.text-to-image.description': 'Text in Bild umwandeln' },\n pt: { 'cli.text-to-image.description': 'Converter texto em imagem' },\n it: { 'cli.text-to-image.description': 'Convertire testo in immagine' },\n ja: { 'cli.text-to-image.description': 'テキストを画像に変換' },\n ko: { 'cli.text-to-image.description': '텍스트를 이미지로 변환' },\n zh: { 'cli.text-to-image.description': '将文本转换为图片' },\n ru: { 'cli.text-to-image.description': 'Преобразование текста в изображение' },\n ro: { 'cli.text-to-image.description': 'Convertire text în imagine' },\n },\n};\n"]}
@@ -1925,6 +1925,7 @@ var textToImage = (() => {
1925
1925
  if (!provider) return {};
1926
1926
  return typeof provider === "function" ? provider() : provider;
1927
1927
  }
1928
+ var ICliSecretStore_TOKEN = createCliToken("cli-secret-store");
1928
1929
  var ICliCommandGuard_TOKEN = createCliToken("cli-command-guard");
1929
1930
  var ICliEventBus_TOKEN = createCliToken("cli-event-bus");
1930
1931
  var DefaultLibraryAuthor = {
@@ -2927,7 +2928,7 @@ var textToImage = (() => {
2927
2928
  };
2928
2929
 
2929
2930
  // src/lib/version.ts
2930
- var LIBRARY_VERSION = "2.4.2";
2931
+ var LIBRARY_VERSION = "2.5.0";
2931
2932
  var API_VERSION2 = 2;
2932
2933
 
2933
2934
  // src/lib/processors/cli-text-to-image-command-processor.ts