@mouryaamit/nx-polystack 1.2.2 → 1.2.4
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/dist/src/executors/build/executor.js +10 -2
- package/dist/src/executors/build/executor.js.map +1 -1
- package/dist/src/executors/flutter-build/executor.js +21 -0
- package/dist/src/executors/flutter-build/executor.js.map +1 -1
- package/dist/src/executors/flutter-build/schema.d.ts +2 -0
- package/dist/src/executors/flutter-build/schema.json +5 -0
- package/dist/src/lib/helpers/strip-exif.d.ts +20 -2
- package/dist/src/lib/helpers/strip-exif.js +25 -5
- package/dist/src/lib/helpers/strip-exif.js.map +1 -1
- package/package.json +1 -1
|
@@ -124,8 +124,16 @@ async function buildExecutor(options, context, runner = defaultRunner, seams = {
|
|
|
124
124
|
fs.mkdirSync(path.join(servedDir, 'assets'), { recursive: true });
|
|
125
125
|
fs.writeFileSync(path.join(servedDir, 'assets', asset.name), asset.bytes);
|
|
126
126
|
}
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
// Every env: only images that carry EXIF are rewritten, the rest stay byte-identical.
|
|
128
|
+
if (fs.existsSync(distDir)) {
|
|
129
|
+
const exif = await (0, strip_exif_1.stripExif)({
|
|
130
|
+
rootDir: distDir,
|
|
131
|
+
log: (m) => {
|
|
132
|
+
if (m.startsWith('skipped'))
|
|
133
|
+
console.warn(`⚠ strip-exif ${m}`);
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
console.log(`ℹ ${(0, strip_exif_1.stripExifSummary)(exif)}`);
|
|
129
137
|
}
|
|
130
138
|
if (fs.existsSync(metaHtml)) {
|
|
131
139
|
(0, inject_meta_1.injectBuildMeta)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/build/executor.ts"],"names":[],"mappings":";;;;AAAA,iDAA0D;AAC1D,+CAAyB;AACzB,mDAA6B;AAI7B,8DAAkE;AAClE,qDAA+E;AAC/E,6DAA+F;AAC/F,+DAA4D;AAC5D,mDAA6D;AAC7D,6DAA4E;AAC5E,yDAA+D;AAC/D,iEAAkE;AAClE,qDAAwD;AACxD,+DAAgE;AAChE,iEAAgE;AAChE,6DAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/build/executor.ts"],"names":[],"mappings":";;;;AAAA,iDAA0D;AAC1D,+CAAyB;AACzB,mDAA6B;AAI7B,8DAAkE;AAClE,qDAA+E;AAC/E,6DAA+F;AAC/F,+DAA4D;AAC5D,mDAA6D;AAC7D,6DAA4E;AAC5E,yDAA+D;AAC/D,iEAAkE;AAClE,qDAAwD;AACxD,+DAAgE;AAChE,iEAAgE;AAChE,6DAAyD;AACzD,6DAA2E;AAC3E,2DAA8D;AAW9D,MAAM,aAAa,GAAW,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACxB,IAAA,wBAAQ,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC;AAEa,KAAK,UAAU,aAAa,CACzC,OAA4B,EAC5B,OAAwB,EACxB,SAAiB,aAAa,EAC9B,QAAoB,EAAE;IAEtB,MAAM,EACJ,IAAI,EACJ,UAAU,EACV,UAAU,EACV,GAAG,EACH,WAAW,EACX,kBAAkB,EAClB,MAAM,GAAG,KAAK,EACd,GAAG,GAAG,KAAK,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,GACX,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CACb,0FAA0F,CAC3F,CAAC;KACH;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAY,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9B,MAAM,MAAM,GAAG,WAAW,IAAI,GAAG,WAAW,QAAQ,CAAC;IACrD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,yCAAyC,CAChF,CAAC;KACH;IACD,IAAI,OAAO,CAAC,UAAU,IAAI,MAAM,KAAK,GAAG,WAAW,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;QAC3E,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,2BAA2B;YAC/D,wGAAwG,CAC3G,CAAC;KACH;IAED,wFAAwF;IACxF,MAAM,SAAS,GAAG,IAAA,0BAAgB,EAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1D,MAAM,KAAK,GAAG,IAAA,6BAAgB,GAAE,CAAC;IACjC,iGAAiG;IACjG,sFAAsF;IACtF,MAAM,QAAQ,GAAG,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC;IAEtC,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IAC1D,oFAAoF;IACpF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAA,wBAAc,EAAC;QAC9B,QAAQ;QACR,UAAU;QACV,GAAG;QACH,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG;QACH,QAAQ;QACR,OAAO;QACP,UAAU;QACV,UAAU;QACV,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CAAC;IACH,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAClC,OAAO,CAAC,GAAG,CACT,uFAAuF,CACxF,CAAC;KACH;IACD,IAAI;QACF,MAAM,aAAa,GACjB,kBAAkB,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,gBAAgB,UAAU,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,GACP,cAAc,MAAM,IAAI,aAAa,IAAI,SAAS,IAAI,WAAW,IAAI,MAAM,IAAI,QAAQ,EAAE;aACtF,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAC;QAEZ,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;KAClD;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI;YACF,QAAQ,CAAC,OAAO,EAAE,CAAC;SACpB;QAAC,OAAO,UAAU,EAAE;YACnB,4EAA4E;YAC5E,OAAO,CAAC,KAAK,CAAC,4BAA6B,UAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;SAC5E;QACD,MAAM,GAAG,CAAC;KACX;IACD,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAEnD,2FAA2F;IAC3F,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC;QACX,IAAA,uBAAU,EAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC;QAC5D,IAAA,6BAAe,EAAC,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC;KACjD,CAAC,CAAC;IACH,iGAAiG;IACjG,qEAAqE;IACrE,MAAM,kBAAkB,GACtB,GAAG,KAAK,KAAK,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,IAAA,gCAAoB,EAAC,SAAS,CAAC,CAAC,CAAC;IAC5F,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAA,wBAAY,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAW,EAAC,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAe,EAAC,SAAS,EAAE;QAClD,QAAQ;QACR,IAAI,EAAE,SAAS,CAAC,SAAS;QACzB,SAAS,EAAE,SAAS,CAAC,gBAAgB;QACrC,UAAU,EAAE,KAAK,CAAC,UAAU;KAC7B,CAAC,CAAC;IACH,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE;QACxB,OAAO,CAAC,GAAG,CACT,iBAAiB,UAAU,CAAC,KAAK,aAAa,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,CAC9E,UAAU,CAAC,UAAU,CACtB,EAAE,CACJ,CAAC;KACH;IACD,IAAI,cAAc,EAAE;QAClB,IAAA,sBAAU,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACtC,uBAAuB,CAAC,SAAS,CAAC,CAAC;KACpC;IAED,+FAA+F;IAC/F,6FAA6F;IAC7F,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACvC,IAAI,KAAK,EAAE;QACT,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3E;IAED,sFAAsF;IACtF,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAS,EAAC;YAC3B,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;gBACT,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;SACF,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,6BAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC5C;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC3B,IAAA,6BAAe,EAAC;YACd,aAAa,EAAE,QAAQ;YACvB,GAAG;YACH,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ;YAClC,GAAG;YACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAC;KACJ;IAED,4FAA4F;IAC5F,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE;QACrD,IAAI,MAAM,EAAE;YACV,IAAA,6BAAc,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;SAC7B;QAED,IAAI,GAAG,IAAI,kBAAkB,EAAE;YAC7B,IAAA,sBAAS,EAAC,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACjF;QACD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACjC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;SACzD;KACF;IAED,2FAA2F;IAC3F,yBAAyB;IACzB,MAAM,WAAW,GAAG,IAAA,wBAAiB,EAAC,SAAS,CAAC,CAAC;IACjD,IAAI,WAAW,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,mBAAmB,CAAC,CAAC;IAEjF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,SAAS,GAAG,YAAY,UAAU,EAAE,CAAC,CAAC;IACjF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AA7LD,gCA6LC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAC3C,MAAM,GAAG,GAAG,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI;YACF,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC;SACnD;QAAC,MAAM;YACN,6BAA6B;SAC9B;KACF;IACD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;QAClB,OAAO,CAAC,GAAG,CACT,iDAAiD,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB;YACxF,iDAAiD,CACpD,CAAC;KACH;AACH,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAE/D;;;GAGG;AACH,SAAS,uBAAuB,CAAC,IAAY;IAC3C,IAAI,IAAA,gCAAoB,EAAC,IAAI,CAAC;QAAE,OAAO;IACvC,MAAM,IAAI,GAAG,IAAA,iBAAS,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/E,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACjD,CAAC;IACF,IAAI,IAAI,EAAE;QACR,OAAO,CAAC,IAAI,CACV,wFAAwF;YACtF,mDAAmD,CACtD,CAAC;KACH;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,YAAY,CAAC,OAAsB;IAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxF;AACH,CAAC;AAED,oGAAoG;AACpG,SAAS,aAAa,CAAC,OAAe,EAAE,UAAkB;IACxD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAE;QAChD,MAAM,IAAI,KAAK,CACb,6CAA6C,UAAU,sCAAsC,CAC9F,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,QAAgB,EAAE,UAAkB,EAAE,GAAW;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAC5D,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAND,gCAMC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,wBAAwB,CAAC,CAAC;IACvF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7C,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC,KAAiB,CAAC;KAC5D;IAAC,MAAM;QACN,0BAA0B;KAC3B;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -4,6 +4,7 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
5
|
const fs = tslib_1.__importStar(require("fs"));
|
|
6
6
|
const path = tslib_1.__importStar(require("path"));
|
|
7
|
+
const strip_exif_1 = require("../../lib/helpers/strip-exif");
|
|
7
8
|
const defaultRunner = (cmd, opts) => {
|
|
8
9
|
console.log(`▶ ${cmd}`);
|
|
9
10
|
(0, child_process_1.execSync)(cmd, opts);
|
|
@@ -63,6 +64,26 @@ async function flutterBuildExecutor(options, context, runner = defaultRunner) {
|
|
|
63
64
|
throw new Error(`flutter-build: unknown target "${target}"`);
|
|
64
65
|
}
|
|
65
66
|
runner(cmd.replace(/\s+/g, ' ').trim(), execOpts);
|
|
67
|
+
const outDir = path.join(repoRoot, dist);
|
|
68
|
+
if (options.stripExif === false) {
|
|
69
|
+
if (target === 'web')
|
|
70
|
+
console.log('ℹ strip-exif: off (stripExif: false)');
|
|
71
|
+
}
|
|
72
|
+
else if (target !== 'web') {
|
|
73
|
+
if (options.stripExif === true) {
|
|
74
|
+
console.log(`ℹ stripExif ignored for ${target}: the images are packed into the app bundle.`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else if (fs.existsSync(outDir)) {
|
|
78
|
+
const exif = await (0, strip_exif_1.stripExif)({
|
|
79
|
+
rootDir: outDir,
|
|
80
|
+
log: (m) => {
|
|
81
|
+
if (m.startsWith('skipped'))
|
|
82
|
+
console.warn(`⚠ strip-exif ${m}`);
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
console.log(`ℹ ${(0, strip_exif_1.stripExifSummary)(exif)}`);
|
|
86
|
+
}
|
|
66
87
|
console.log('✅ Flutter build complete');
|
|
67
88
|
return { success: true };
|
|
68
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/flutter-build/executor.ts"],"names":[],"mappings":";;;AAAA,iDAA0D;AAC1D,+CAAyB;AACzB,mDAA6B;
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/executors/flutter-build/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,11 @@
|
|
|
38
38
|
"type": "boolean",
|
|
39
39
|
"default": false,
|
|
40
40
|
"description": "Enable Dart obfuscation for APK / iOS builds (ignored for web)."
|
|
41
|
+
},
|
|
42
|
+
"stripExif": {
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"default": true,
|
|
45
|
+
"description": "Web builds: remove EXIF from the images in dist (only images that have EXIF are rewritten). Set false to leave the output as Flutter wrote it. Ignored for apk / ios."
|
|
41
46
|
}
|
|
42
47
|
},
|
|
43
48
|
"required": []
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
export interface StripExifOptions {
|
|
2
2
|
/** Recursive root directory to scan for image files. */
|
|
3
3
|
rootDir: string;
|
|
4
|
-
/** JPEG output quality. Default 90. */
|
|
4
|
+
/** JPEG and WebP output quality for images that are re-encoded. Default 90. */
|
|
5
5
|
jpegQuality?: number;
|
|
6
6
|
/** Optional logger; defaults to no-op. */
|
|
7
7
|
log?: (msg: string) => void;
|
|
8
8
|
}
|
|
9
|
-
export
|
|
9
|
+
export interface StripExifResult {
|
|
10
|
+
/** Image files looked at (.jpg, .jpeg, .png, .webp). */
|
|
11
|
+
scanned: number;
|
|
12
|
+
/** Files that had EXIF and were re-encoded without it. */
|
|
13
|
+
stripped: number;
|
|
14
|
+
/** Files without EXIF, left byte-identical. */
|
|
15
|
+
unchanged: number;
|
|
16
|
+
/** Files sharp could not read or write (logged, left as they were). */
|
|
17
|
+
skipped: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Removes EXIF from the images under `rootDir`. Only images that carry EXIF are re-encoded (sharp
|
|
21
|
+
* drops metadata unless `withMetadata()` is used); every other image is not written, so its bytes
|
|
22
|
+
* and mtime stay as they were. A stripped image is rotated to its EXIF orientation first, so it
|
|
23
|
+
* still displays the same way once the orientation tag is gone.
|
|
24
|
+
*/
|
|
25
|
+
export declare function stripExif(opts: StripExifOptions): Promise<StripExifResult>;
|
|
26
|
+
/** One line for the build log: `strip-exif: 1113 scanned, 222 stripped, 891 unchanged, 0 skipped`. */
|
|
27
|
+
export declare function stripExifSummary(r: StripExifResult): string;
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.stripExif = void 0;
|
|
3
|
+
exports.stripExifSummary = exports.stripExif = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs = tslib_1.__importStar(require("fs"));
|
|
6
6
|
const path = tslib_1.__importStar(require("path"));
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
8
8
|
const sharp = require('sharp');
|
|
9
9
|
const SUPPORTED_EXTS = new Set(['.jpg', '.jpeg', '.png', '.webp']);
|
|
10
|
+
/**
|
|
11
|
+
* Removes EXIF from the images under `rootDir`. Only images that carry EXIF are re-encoded (sharp
|
|
12
|
+
* drops metadata unless `withMetadata()` is used); every other image is not written, so its bytes
|
|
13
|
+
* and mtime stay as they were. A stripped image is rotated to its EXIF orientation first, so it
|
|
14
|
+
* still displays the same way once the orientation tag is gone.
|
|
15
|
+
*/
|
|
10
16
|
async function stripExif(opts) {
|
|
11
17
|
if (!fs.existsSync(opts.rootDir)) {
|
|
12
18
|
throw new Error(`stripExif: rootDir not found: ${opts.rootDir}`);
|
|
@@ -16,30 +22,44 @@ async function stripExif(opts) {
|
|
|
16
22
|
/* no-op */
|
|
17
23
|
});
|
|
18
24
|
const quality = opts.jpegQuality ?? 90;
|
|
25
|
+
const result = { scanned: 0, stripped: 0, unchanged: 0, skipped: 0 };
|
|
19
26
|
for (const file of walk(opts.rootDir)) {
|
|
20
27
|
const ext = path.extname(file).toLowerCase();
|
|
21
28
|
if (!SUPPORTED_EXTS.has(ext))
|
|
22
29
|
continue;
|
|
30
|
+
result.scanned++;
|
|
23
31
|
try {
|
|
24
32
|
const buf = fs.readFileSync(file);
|
|
33
|
+
const meta = await sharp(buf, { failOn: 'none' }).metadata();
|
|
34
|
+
if (!meta.exif || meta.exif.length === 0) {
|
|
35
|
+
result.unchanged++;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
25
38
|
let pipeline = sharp(buf, { failOn: 'none' }).rotate();
|
|
26
|
-
if (ext === '.
|
|
27
|
-
pipeline = pipeline.jpeg({ quality });
|
|
28
|
-
else if (ext === '.png')
|
|
39
|
+
if (ext === '.png')
|
|
29
40
|
pipeline = pipeline.png();
|
|
30
41
|
else if (ext === '.webp')
|
|
31
42
|
pipeline = pipeline.webp({ quality });
|
|
32
|
-
|
|
43
|
+
else
|
|
44
|
+
pipeline = pipeline.jpeg({ quality });
|
|
33
45
|
const out = await pipeline.toBuffer();
|
|
34
46
|
fs.writeFileSync(file, out);
|
|
47
|
+
result.stripped++;
|
|
35
48
|
log(`stripped: ${file}`);
|
|
36
49
|
}
|
|
37
50
|
catch (e) {
|
|
51
|
+
result.skipped++;
|
|
38
52
|
log(`skipped (error): ${file} — ${e.message}`);
|
|
39
53
|
}
|
|
40
54
|
}
|
|
55
|
+
return result;
|
|
41
56
|
}
|
|
42
57
|
exports.stripExif = stripExif;
|
|
58
|
+
/** One line for the build log: `strip-exif: 1113 scanned, 222 stripped, 891 unchanged, 0 skipped`. */
|
|
59
|
+
function stripExifSummary(r) {
|
|
60
|
+
return `strip-exif: ${r.scanned} scanned, ${r.stripped} stripped, ${r.unchanged} unchanged, ${r.skipped} skipped`;
|
|
61
|
+
}
|
|
62
|
+
exports.stripExifSummary = stripExifSummary;
|
|
43
63
|
function* walk(dir) {
|
|
44
64
|
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
45
65
|
const full = path.join(dir, entry.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-exif.js","sourceRoot":"","sources":["../../../../src/lib/helpers/strip-exif.ts"],"names":[],"mappings":";;;;AAAA,+CAAyB;AACzB,mDAA6B;
|
|
1
|
+
{"version":3,"file":"strip-exif.js","sourceRoot":"","sources":["../../../../src/lib/helpers/strip-exif.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mouryaamit/nx-polystack",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"description": "Nx plugin and pstack CLI that scaffold and build multi-tech monorepos (Angular, Ionic, Flutter) with a hardened release pipeline.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "commonjs",
|