@fastkit/plugboy 0.2.1 → 0.2.2
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/{chunk-WE54CKNT.mjs → chunk-GCOWCMQ6.mjs} +3 -3
- package/dist/cli.mjs +5 -5
- package/dist/cli.mjs.map +1 -1
- package/dist/{optimize-layer-YPXEP6I3.mjs → optimize-layer-YJERAHYO.mjs} +2 -2
- package/dist/{optimize-layer-YPXEP6I3.mjs.map → optimize-layer-YJERAHYO.mjs.map} +1 -1
- package/dist/{optimize-media-7XHMOJTD.mjs → optimize-media-7PF3XJSZ.mjs} +2 -2
- package/dist/{optimize-media-7XHMOJTD.mjs.map → optimize-media-7PF3XJSZ.mjs.map} +1 -1
- package/dist/plugboy.mjs +1 -1
- package/package.json +4 -4
- /package/dist/{chunk-WE54CKNT.mjs.map → chunk-GCOWCMQ6.mjs.map} +0 -0
|
@@ -632,10 +632,10 @@ async function getPostcss(options) {
|
|
|
632
632
|
const { layer, media, combineRules, cssnano } = options;
|
|
633
633
|
const [postcss, _layer, _media, _combineRules, _cssnano] = await Promise.all([
|
|
634
634
|
import("postcss").then((mod) => mod.default),
|
|
635
|
-
layer && import("./optimize-layer-
|
|
635
|
+
layer && import("./optimize-layer-YJERAHYO.mjs").then(
|
|
636
636
|
(mod) => mod.OptimizeLayer(layer)
|
|
637
637
|
),
|
|
638
|
-
media && import("./optimize-media-
|
|
638
|
+
media && import("./optimize-media-7PF3XJSZ.mjs").then(
|
|
639
639
|
(mod) => mod.OptimizeMedia(media)
|
|
640
640
|
),
|
|
641
641
|
combineRules && import("./combine-rules-2FWRSWQP.mjs").then(
|
|
@@ -1668,4 +1668,4 @@ export {
|
|
|
1668
1668
|
getWorkspace,
|
|
1669
1669
|
generateWorkspace
|
|
1670
1670
|
};
|
|
1671
|
-
//# sourceMappingURL=chunk-
|
|
1671
|
+
//# sourceMappingURL=chunk-GCOWCMQ6.mjs.map
|
package/dist/cli.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateWorkspace,
|
|
3
3
|
getWorkspace
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GCOWCMQ6.mjs";
|
|
5
5
|
|
|
6
6
|
// src/cli.ts
|
|
7
7
|
import { cac } from "cac";
|
|
@@ -9,7 +9,7 @@ import { cac } from "cac";
|
|
|
9
9
|
// package.json
|
|
10
10
|
var package_default = {
|
|
11
11
|
name: "@fastkit/plugboy",
|
|
12
|
-
version: "0.2.
|
|
12
|
+
version: "0.2.2",
|
|
13
13
|
description: "",
|
|
14
14
|
keywords: [],
|
|
15
15
|
repository: {
|
|
@@ -83,12 +83,12 @@ var package_default = {
|
|
|
83
83
|
"bundle-require": "^4.0.2",
|
|
84
84
|
cac: "^6.7.14",
|
|
85
85
|
cssnano: "^6.0.3",
|
|
86
|
-
esbuild: "^0.19.
|
|
86
|
+
esbuild: "^0.19.12",
|
|
87
87
|
execa: "^8.0.1",
|
|
88
88
|
glob: "^10.3.10",
|
|
89
|
-
inquirer: "^9.2.
|
|
89
|
+
inquirer: "^9.2.14",
|
|
90
90
|
"pkg-types": "^1.0.3",
|
|
91
|
-
"sort-package-json": "^2.
|
|
91
|
+
"sort-package-json": "^2.7.0",
|
|
92
92
|
tsup: "^8.0.1"
|
|
93
93
|
},
|
|
94
94
|
devDependencies: {
|
package/dist/cli.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts","../package.json"],"sourcesContent":["import { cac } from 'cac';\nimport { getWorkspace, generateWorkspace } from './workspace';\nimport pkg from '../package.json';\n\nexport async function main() {\n const cli = cac('plugboy');\n cli.version(pkg.version);\n\n cli\n .command('json', 'Apply workspace settings in package.json.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n });\n\n cli\n .command('stub', 'Link workspace distributions and source directories.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.stub();\n });\n\n cli\n .command(\n 'build',\n 'Guess all entries in the workspace and bundle the source code.',\n )\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.build();\n });\n\n cli\n .command('clean', 'Deletes the distribution directory of the workspace.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.clean();\n });\n\n cli\n .command(\n 'generate [workspaceName]',\n 'Generate a workspace for your project.',\n )\n .alias('gen')\n .action(async (workspaceName: string | undefined, options) => {\n await generateWorkspace(workspaceName);\n });\n\n cli.help();\n cli.parse();\n}\n\nmain();\n","{\n \"name\": \"@fastkit/plugboy\",\n \"version\": \"0.2.
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts","../package.json"],"sourcesContent":["import { cac } from 'cac';\nimport { getWorkspace, generateWorkspace } from './workspace';\nimport pkg from '../package.json';\n\nexport async function main() {\n const cli = cac('plugboy');\n cli.version(pkg.version);\n\n cli\n .command('json', 'Apply workspace settings in package.json.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n });\n\n cli\n .command('stub', 'Link workspace distributions and source directories.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.stub();\n });\n\n cli\n .command(\n 'build',\n 'Guess all entries in the workspace and bundle the source code.',\n )\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.build();\n });\n\n cli\n .command('clean', 'Deletes the distribution directory of the workspace.')\n .action(async (files, options) => {\n const workspace = await getWorkspace();\n await workspace.preparePackageJSON();\n await workspace.clean();\n });\n\n cli\n .command(\n 'generate [workspaceName]',\n 'Generate a workspace for your project.',\n )\n .alias('gen')\n .action(async (workspaceName: string | undefined, options) => {\n await generateWorkspace(workspaceName);\n });\n\n cli.help();\n cli.parse();\n}\n\nmain();\n","{\n \"name\": \"@fastkit/plugboy\",\n \"version\": \"0.2.2\",\n \"description\": \"\",\n \"keywords\": [],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/dadajam4/fastkit.git\"\n },\n \"license\": \"MIT\",\n \"author\": \"dadajam4\",\n \"type\": \"module\",\n \"exports\": {\n \"./package.json\": \"./package.json\",\n \"./dependencies/bundle-require\": {\n \"import\": \"./dist/dependencies/bundle-require.mjs\",\n \"types\": \"./dist/dependencies/bundle-require.d.ts\"\n },\n \"./dependencies/cac\": {\n \"import\": \"./dist/dependencies/cac.mjs\",\n \"types\": \"./dist/dependencies/cac.d.ts\"\n },\n \"./dependencies/esbuild\": {\n \"import\": \"./dist/dependencies/esbuild.mjs\",\n \"types\": \"./dist/dependencies/esbuild.d.ts\"\n },\n \"./dependencies/glob\": {\n \"import\": \"./dist/dependencies/glob.mjs\",\n \"types\": \"./dist/dependencies/glob.d.ts\"\n },\n \"./dependencies/inquirer\": {\n \"import\": \"./dist/dependencies/inquirer.mjs\",\n \"types\": \"./dist/dependencies/inquirer.d.ts\"\n },\n \"./dependencies/pkg-types\": {\n \"import\": \"./dist/dependencies/pkg-types.mjs\",\n \"types\": \"./dist/dependencies/pkg-types.d.ts\"\n },\n \"./dependencies/sort-package-json\": {\n \"import\": \"./dist/dependencies/sort-package-json.mjs\",\n \"types\": \"./dist/dependencies/sort-package-json.d.ts\"\n },\n \"./dependencies/tsup\": {\n \"import\": \"./dist/dependencies/tsup.mjs\",\n \"types\": \"./dist/dependencies/tsup.d.ts\"\n },\n \"./env\": {\n \"types\": \"./env.d.ts\"\n },\n \".\": {\n \"import\": \"./dist/plugboy.mjs\",\n \"types\": \"./dist/plugboy.d.ts\"\n }\n },\n \"bin\": {\n \"plugboy\": \"./cli.mjs\"\n },\n \"files\": [\n \"env.d.ts\",\n \"cli.mjs\",\n \"dist\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"rm -rf .turbo && rm -rf node_modules && rm -rf dist\",\n \"eslint\": \"eslint . --ext ts,tsx,js,vue,html,yaml\",\n \"eslint:fix\": \"eslint . --ext ts,tsx,js,vue,html,yaml --fix\",\n \"lint\": \"pnpm run eslint\",\n \"format\": \"pnpm run eslint:fix\",\n \"typecheck\": \"tsc --noEmit --skipLibCheck\",\n \"test\": \"vitest run\"\n },\n \"dependencies\": {\n \"bundle-require\": \"^4.0.2\",\n \"cac\": \"^6.7.14\",\n \"cssnano\": \"^6.0.3\",\n \"esbuild\": \"^0.19.12\",\n \"execa\": \"^8.0.1\",\n \"glob\": \"^10.3.10\",\n \"inquirer\": \"^9.2.14\",\n \"pkg-types\": \"^1.0.3\",\n \"sort-package-json\": \"^2.7.0\",\n \"tsup\": \"^8.0.1\"\n },\n \"devDependencies\": {\n \"@types/inquirer\": \"^9.0.7\"\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -39,7 +39,7 @@ function optimizeLayer(css, opts = {}) {
|
|
|
39
39
|
const { layer, atFirst } = getLayer(layerRule);
|
|
40
40
|
if (atFirst)
|
|
41
41
|
return;
|
|
42
|
-
layerRule.nodes
|
|
42
|
+
layerRule.nodes?.forEach((node) => {
|
|
43
43
|
layer.rule.append(node.clone());
|
|
44
44
|
});
|
|
45
45
|
layerRule.remove();
|
|
@@ -62,4 +62,4 @@ export {
|
|
|
62
62
|
optimize_layer_default as default,
|
|
63
63
|
optimizeLayer
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=optimize-layer-
|
|
65
|
+
//# sourceMappingURL=optimize-layer-YJERAHYO.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/postcss/plugins/optimize-layer.ts"],"sourcesContent":["import postcss, { AtRule, Plugin, Root } from 'postcss';\n\ntype Filter = (layerName: string, rule: AtRule) => boolean;\n\ntype FilterSpec = string | RegExp | (string | RegExp)[] | Filter;\n\nexport interface OptimizeLayerOptions {\n include?: FilterSpec;\n exclude?: FilterSpec;\n}\n\nfunction resolveFilter(\n spec: FilterSpec | undefined,\n defaults: boolean,\n): Filter {\n if (!spec) return () => defaults;\n if (typeof spec === 'function') return spec;\n const conditions = Array.isArray(spec) ? spec : [spec];\n return (layerName) =>\n conditions.some((condition) =>\n typeof condition === 'string'\n ? layerName.includes(condition)\n : condition.test(layerName),\n );\n}\n\ninterface Layer {\n name: string;\n rule: AtRule;\n}\n\nexport function optimizeLayer(\n css: string | { toString(): string } | Root,\n opts: OptimizeLayerOptions = {},\n): Root {\n const root = css instanceof Root ? css : postcss.parse(css);\n const layers: Layer[] = [];\n const include = resolveFilter(opts.include, true);\n const exclude = resolveFilter(opts.exclude, false);\n\n const getLayer = (\n layerRule: AtRule,\n ): {\n layer: Layer;\n atFirst: boolean;\n } => {\n const name = layerRule.params;\n const layer = layers.find((_layer) => _layer.name === name);\n if (layer)\n return {\n layer,\n atFirst: false,\n };\n\n const created: Layer = { name, rule: layerRule };\n layers.push(created);\n return {\n layer: created,\n atFirst: true,\n };\n };\n\n root.walkAtRules('layer', (layerRule) => {\n if (layerRule.parent?.type !== 'root') return;\n const { params, nodes } = layerRule;\n if (!nodes || !include(params, layerRule) || exclude(params, layerRule))\n return;\n\n const { layer, atFirst } = getLayer(layerRule);\n\n if (atFirst) return;\n\n layerRule.nodes
|
|
1
|
+
{"version":3,"sources":["../src/postcss/plugins/optimize-layer.ts"],"sourcesContent":["import postcss, { AtRule, Plugin, Root } from 'postcss';\n\ntype Filter = (layerName: string, rule: AtRule) => boolean;\n\ntype FilterSpec = string | RegExp | (string | RegExp)[] | Filter;\n\nexport interface OptimizeLayerOptions {\n include?: FilterSpec;\n exclude?: FilterSpec;\n}\n\nfunction resolveFilter(\n spec: FilterSpec | undefined,\n defaults: boolean,\n): Filter {\n if (!spec) return () => defaults;\n if (typeof spec === 'function') return spec;\n const conditions = Array.isArray(spec) ? spec : [spec];\n return (layerName) =>\n conditions.some((condition) =>\n typeof condition === 'string'\n ? layerName.includes(condition)\n : condition.test(layerName),\n );\n}\n\ninterface Layer {\n name: string;\n rule: AtRule;\n}\n\nexport function optimizeLayer(\n css: string | { toString(): string } | Root,\n opts: OptimizeLayerOptions = {},\n): Root {\n const root = css instanceof Root ? css : postcss.parse(css);\n const layers: Layer[] = [];\n const include = resolveFilter(opts.include, true);\n const exclude = resolveFilter(opts.exclude, false);\n\n const getLayer = (\n layerRule: AtRule,\n ): {\n layer: Layer;\n atFirst: boolean;\n } => {\n const name = layerRule.params;\n const layer = layers.find((_layer) => _layer.name === name);\n if (layer)\n return {\n layer,\n atFirst: false,\n };\n\n const created: Layer = { name, rule: layerRule };\n layers.push(created);\n return {\n layer: created,\n atFirst: true,\n };\n };\n\n root.walkAtRules('layer', (layerRule) => {\n if (layerRule.parent?.type !== 'root') return;\n const { params, nodes } = layerRule;\n if (!nodes || !include(params, layerRule) || exclude(params, layerRule))\n return;\n\n const { layer, atFirst } = getLayer(layerRule);\n\n if (atFirst) return;\n\n layerRule.nodes?.forEach((node) => {\n layer.rule.append(node.clone());\n });\n\n layerRule.remove();\n });\n\n return root;\n}\n\nconst PLUGIN_NAME = 'optimize-layer';\n\nexport function OptimizeLayer(opts?: OptimizeLayerOptions): Plugin {\n return {\n postcssPlugin: PLUGIN_NAME,\n Once(root) {\n optimizeLayer(root, opts);\n },\n };\n}\n\nOptimizeLayer.postcss = true;\n\nexport default OptimizeLayer;\n"],"mappings":";AAAA,OAAO,WAA2B,YAAY;AAW9C,SAAS,cACP,MACA,UACQ;AACR,MAAI,CAAC;AAAM,WAAO,MAAM;AACxB,MAAI,OAAO,SAAS;AAAY,WAAO;AACvC,QAAM,aAAa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AACrD,SAAO,CAAC,cACN,WAAW;AAAA,IAAK,CAAC,cACf,OAAO,cAAc,WACjB,UAAU,SAAS,SAAS,IAC5B,UAAU,KAAK,SAAS;AAAA,EAC9B;AACJ;AAOO,SAAS,cACd,KACA,OAA6B,CAAC,GACxB;AACN,QAAM,OAAO,eAAe,OAAO,MAAM,QAAQ,MAAM,GAAG;AAC1D,QAAM,SAAkB,CAAC;AACzB,QAAM,UAAU,cAAc,KAAK,SAAS,IAAI;AAChD,QAAM,UAAU,cAAc,KAAK,SAAS,KAAK;AAEjD,QAAM,WAAW,CACf,cAIG;AACH,UAAM,OAAO,UAAU;AACvB,UAAM,QAAQ,OAAO,KAAK,CAAC,WAAW,OAAO,SAAS,IAAI;AAC1D,QAAI;AACF,aAAO;AAAA,QACL;AAAA,QACA,SAAS;AAAA,MACX;AAEF,UAAM,UAAiB,EAAE,MAAM,MAAM,UAAU;AAC/C,WAAO,KAAK,OAAO;AACnB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AAEA,OAAK,YAAY,SAAS,CAAC,cAAc;AACvC,QAAI,UAAU,QAAQ,SAAS;AAAQ;AACvC,UAAM,EAAE,QAAQ,MAAM,IAAI;AAC1B,QAAI,CAAC,SAAS,CAAC,QAAQ,QAAQ,SAAS,KAAK,QAAQ,QAAQ,SAAS;AACpE;AAEF,UAAM,EAAE,OAAO,QAAQ,IAAI,SAAS,SAAS;AAE7C,QAAI;AAAS;AAEb,cAAU,OAAO,QAAQ,CAAC,SAAS;AACjC,YAAM,KAAK,OAAO,KAAK,MAAM,CAAC;AAAA,IAChC,CAAC;AAED,cAAU,OAAO;AAAA,EACnB,CAAC;AAED,SAAO;AACT;AAEA,IAAM,cAAc;AAEb,SAAS,cAAc,MAAqC;AACjE,SAAO;AAAA,IACL,eAAe;AAAA,IACf,KAAK,MAAM;AACT,oBAAc,MAAM,IAAI;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,cAAc,UAAU;AAExB,IAAO,yBAAQ;","names":[]}
|
|
@@ -68,7 +68,7 @@ function optimizeMedia(css, opts = {}) {
|
|
|
68
68
|
rule.medias.push(media);
|
|
69
69
|
});
|
|
70
70
|
combinedRules.forEach((rule) => {
|
|
71
|
-
const nodes = rule.medias.map((media) => media.rule.nodes.map((node) => node.clone())).flat();
|
|
71
|
+
const nodes = rule.medias.map((media) => (media.rule.nodes || []).map((node) => node.clone())).flat();
|
|
72
72
|
const newAtRule = new AtRule({
|
|
73
73
|
name: "media",
|
|
74
74
|
params: rule.query,
|
|
@@ -100,4 +100,4 @@ export {
|
|
|
100
100
|
optimize_media_default as default,
|
|
101
101
|
optimizeMedia
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=optimize-media-
|
|
103
|
+
//# sourceMappingURL=optimize-media-7PF3XJSZ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/postcss/plugins/optimize-media.ts"],"sourcesContent":["import postcss, {\n AtRule,\n Plugin,\n Root,\n Container,\n ChildNode,\n Comment,\n} from 'postcss';\n\ninterface Media {\n query: string;\n rule: AtRule;\n container: Container;\n}\n\ntype Filter = (query: string, media: Media) => boolean;\n\ntype FilterSpec = string | RegExp | (string | RegExp)[] | Filter;\n\nfunction resolveFilter(\n spec: FilterSpec | undefined,\n defaults: boolean,\n): Filter {\n if (!spec) return () => defaults;\n if (typeof spec === 'function') return spec;\n const conditions = Array.isArray(spec) ? spec : [spec];\n return (layerName) =>\n conditions.some((condition) =>\n typeof condition === 'string'\n ? layerName.includes(condition)\n : condition.test(layerName),\n );\n}\n\ntype SortMedia = (a: Media, b: Media) => number;\n\nexport interface OptimizeMediaOptions {\n include?: FilterSpec;\n exclude?: FilterSpec;\n sort?: SortMedia;\n}\n\nfunction parseMedia(mediaRule: AtRule): Media {\n const { params, parent } = mediaRule;\n if (!parent) {\n throw mediaRule.error('@media rules require a parent container.');\n }\n return {\n query: params,\n rule: mediaRule,\n container: parent,\n };\n}\n\nfunction isSourceMapAnnotation(node: ChildNode | undefined): node is Comment {\n if (!node) return false;\n if (node.type !== 'comment') return false;\n return node.text.toLowerCase().startsWith('# sourcemappingurl=');\n}\n\nfunction getSourceMapAnnotation(container: Container): ChildNode | undefined {\n const maybeAnnotation = container.last;\n if (isSourceMapAnnotation(maybeAnnotation)) {\n return maybeAnnotation;\n }\n}\n\nexport function optimizeMedia(\n css: string | { toString(): string } | Root,\n opts: OptimizeMediaOptions = {},\n): Root {\n const root = css instanceof Root ? css : postcss.parse(css);\n const include = resolveFilter(opts.include, true);\n const exclude = resolveFilter(opts.exclude, false);\n\n const sourceMap = getSourceMapAnnotation(root);\n\n const containerMap = new Map<Container, Media[]>();\n\n root.walkAtRules('media', (mediaRule) => {\n const media = parseMedia(mediaRule);\n if (\n !mediaRule.nodes ||\n !include(media.query, media) ||\n exclude(media.query, media)\n )\n return;\n\n let bucket = containerMap.get(media.container);\n if (!bucket) {\n bucket = [];\n containerMap.set(media.container, bucket);\n }\n bucket.push(media);\n });\n\n containerMap.forEach((bucket, container) => {\n if (opts.sort) {\n bucket.sort(opts.sort);\n }\n\n const combinedRules: {\n query: string;\n medias: Media[];\n }[] = [];\n\n bucket.forEach((media) => {\n let rule = combinedRules.find((r) => r.query === media.query);\n if (!rule) {\n rule = { query: media.query, medias: [] };\n combinedRules.push(rule);\n }\n rule.medias.push(media);\n });\n\n combinedRules.forEach((rule) => {\n const nodes = rule.medias\n .map((media) => media.rule.nodes.map((node) => node.clone()))\n .flat();\n const newAtRule = new AtRule({\n name: 'media',\n params: rule.query,\n nodes,\n });\n rule.medias.forEach((media) => media.rule.remove());\n container.append(newAtRule);\n });\n });\n\n containerMap.clear();\n\n if (sourceMap) {\n root.append(sourceMap);\n }\n\n return root;\n}\n\nconst PLUGIN_NAME = 'optimize-media';\n\nexport function OptimizeMedia(opts?: OptimizeMediaOptions): Plugin {\n return {\n postcssPlugin: PLUGIN_NAME,\n Once(root) {\n optimizeMedia(root, opts);\n },\n };\n}\n\nOptimizeMedia.postcss = true;\n\nexport default OptimizeMedia;\n"],"mappings":";AAAA,OAAO;AAAA,EACL;AAAA,EAEA;AAAA,OAIK;AAYP,SAAS,cACP,MACA,UACQ;AACR,MAAI,CAAC;AAAM,WAAO,MAAM;AACxB,MAAI,OAAO,SAAS;AAAY,WAAO;AACvC,QAAM,aAAa,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AACrD,SAAO,CAAC,cACN,WAAW;AAAA,IAAK,CAAC,cACf,OAAO,cAAc,WACjB,UAAU,SAAS,SAAS,IAC5B,UAAU,KAAK,SAAS;AAAA,EAC9B;AACJ;AAUA,SAAS,WAAW,WAA0B;AAC5C,QAAM,EAAE,QAAQ,OAAO,IAAI;AAC3B,MAAI,CAAC,QAAQ;AACX,UAAM,UAAU,MAAM,0CAA0C;AAAA,EAClE;AACA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,EACb;AACF;AAEA,SAAS,sBAAsB,MAA8C;AAC3E,MAAI,CAAC;AAAM,WAAO;AAClB,MAAI,KAAK,SAAS;AAAW,WAAO;AACpC,SAAO,KAAK,KAAK,YAAY,EAAE,WAAW,qBAAqB;AACjE;AAEA,SAAS,uBAAuB,WAA6C;AAC3E,QAAM,kBAAkB,UAAU;AAClC,MAAI,sBAAsB,eAAe,GAAG;AAC1C,WAAO;AAAA,EACT;AACF;AAEO,SAAS,cACd,KACA,OAA6B,CAAC,GACxB;AACN,QAAM,OAAO,eAAe,OAAO,MAAM,QAAQ,MAAM,GAAG;AAC1D,QAAM,UAAU,cAAc,KAAK,SAAS,IAAI;AAChD,QAAM,UAAU,cAAc,KAAK,SAAS,KAAK;AAEjD,QAAM,YAAY,uBAAuB,IAAI;AAE7C,QAAM,eAAe,oBAAI,IAAwB;AAEjD,OAAK,YAAY,SAAS,CAAC,cAAc;AACvC,UAAM,QAAQ,WAAW,SAAS;AAClC,QACE,CAAC,UAAU,SACX,CAAC,QAAQ,MAAM,OAAO,KAAK,KAC3B,QAAQ,MAAM,OAAO,KAAK;AAE1B;AAEF,QAAI,SAAS,aAAa,IAAI,MAAM,SAAS;AAC7C,QAAI,CAAC,QAAQ;AACX,eAAS,CAAC;AACV,mBAAa,IAAI,MAAM,WAAW,MAAM;AAAA,IAC1C;AACA,WAAO,KAAK,KAAK;AAAA,EACnB,CAAC;AAED,eAAa,QAAQ,CAAC,QAAQ,cAAc;AAC1C,QAAI,KAAK,MAAM;AACb,aAAO,KAAK,KAAK,IAAI;AAAA,IACvB;AAEA,UAAM,gBAGA,CAAC;AAEP,WAAO,QAAQ,CAAC,UAAU;AACxB,UAAI,OAAO,cAAc,KAAK,CAAC,MAAM,EAAE,UAAU,MAAM,KAAK;AAC5D,UAAI,CAAC,MAAM;AACT,eAAO,EAAE,OAAO,MAAM,OAAO,QAAQ,CAAC,EAAE;AACxC,sBAAc,KAAK,IAAI;AAAA,MACzB;AACA,WAAK,OAAO,KAAK,KAAK;AAAA,IACxB,CAAC;AAED,kBAAc,QAAQ,CAAC,SAAS;AAC9B,YAAM,QAAQ,KAAK,OAChB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/postcss/plugins/optimize-media.ts"],"sourcesContent":["import postcss, {\n AtRule,\n Plugin,\n Root,\n Container,\n ChildNode,\n Comment,\n} from 'postcss';\n\ninterface Media {\n query: string;\n rule: AtRule;\n container: Container;\n}\n\ntype Filter = (query: string, media: Media) => boolean;\n\ntype FilterSpec = string | RegExp | (string | RegExp)[] | Filter;\n\nfunction resolveFilter(\n spec: FilterSpec | undefined,\n defaults: boolean,\n): Filter {\n if (!spec) return () => defaults;\n if (typeof spec === 'function') return spec;\n const conditions = Array.isArray(spec) ? spec : [spec];\n return (layerName) =>\n conditions.some((condition) =>\n typeof condition === 'string'\n ? layerName.includes(condition)\n : condition.test(layerName),\n );\n}\n\ntype SortMedia = (a: Media, b: Media) => number;\n\nexport interface OptimizeMediaOptions {\n include?: FilterSpec;\n exclude?: FilterSpec;\n sort?: SortMedia;\n}\n\nfunction parseMedia(mediaRule: AtRule): Media {\n const { params, parent } = mediaRule;\n if (!parent) {\n throw mediaRule.error('@media rules require a parent container.');\n }\n return {\n query: params,\n rule: mediaRule,\n container: parent,\n };\n}\n\nfunction isSourceMapAnnotation(node: ChildNode | undefined): node is Comment {\n if (!node) return false;\n if (node.type !== 'comment') return false;\n return node.text.toLowerCase().startsWith('# sourcemappingurl=');\n}\n\nfunction getSourceMapAnnotation(container: Container): ChildNode | undefined {\n const maybeAnnotation = container.last;\n if (isSourceMapAnnotation(maybeAnnotation)) {\n return maybeAnnotation;\n }\n}\n\nexport function optimizeMedia(\n css: string | { toString(): string } | Root,\n opts: OptimizeMediaOptions = {},\n): Root {\n const root = css instanceof Root ? css : postcss.parse(css);\n const include = resolveFilter(opts.include, true);\n const exclude = resolveFilter(opts.exclude, false);\n\n const sourceMap = getSourceMapAnnotation(root);\n\n const containerMap = new Map<Container, Media[]>();\n\n root.walkAtRules('media', (mediaRule) => {\n const media = parseMedia(mediaRule);\n if (\n !mediaRule.nodes ||\n !include(media.query, media) ||\n exclude(media.query, media)\n )\n return;\n\n let bucket = containerMap.get(media.container);\n if (!bucket) {\n bucket = [];\n containerMap.set(media.container, bucket);\n }\n bucket.push(media);\n });\n\n containerMap.forEach((bucket, container) => {\n if (opts.sort) {\n bucket.sort(opts.sort);\n }\n\n const combinedRules: {\n query: string;\n medias: Media[];\n }[] = [];\n\n bucket.forEach((media) => {\n let rule = combinedRules.find((r) => r.query === media.query);\n if (!rule) {\n rule = { query: media.query, medias: [] };\n combinedRules.push(rule);\n }\n rule.medias.push(media);\n });\n\n combinedRules.forEach((rule) => {\n const nodes = rule.medias\n .map((media) => (media.rule.nodes || []).map((node) => node.clone()))\n .flat();\n const newAtRule = new AtRule({\n name: 'media',\n params: rule.query,\n nodes,\n });\n rule.medias.forEach((media) => media.rule.remove());\n container.append(newAtRule);\n });\n });\n\n containerMap.clear();\n\n if (sourceMap) {\n root.append(sourceMap);\n }\n\n return root;\n}\n\nconst PLUGIN_NAME = 'optimize-media';\n\nexport function OptimizeMedia(opts?: OptimizeMediaOptions): Plugin {\n return {\n postcssPlugin: PLUGIN_NAME,\n Once(root) {\n optimizeMedia(root, opts);\n },\n };\n}\n\nOptimizeMedia.postcss = true;\n\nexport default OptimizeMedia;\n"],"mappings":"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","names":[]}
|
package/dist/plugboy.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fastkit/plugboy",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"repository": {
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
"bundle-require": "^4.0.2",
|
|
65
65
|
"cac": "^6.7.14",
|
|
66
66
|
"cssnano": "^6.0.3",
|
|
67
|
-
"esbuild": "^0.19.
|
|
67
|
+
"esbuild": "^0.19.12",
|
|
68
68
|
"execa": "^8.0.1",
|
|
69
69
|
"glob": "^10.3.10",
|
|
70
|
-
"inquirer": "^9.2.
|
|
70
|
+
"inquirer": "^9.2.14",
|
|
71
71
|
"pkg-types": "^1.0.3",
|
|
72
|
-
"sort-package-json": "^2.
|
|
72
|
+
"sort-package-json": "^2.7.0",
|
|
73
73
|
"tsup": "^8.0.1"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
File without changes
|