create-jant 0.1.13 → 0.1.14
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/index.js +1 -1
- package/package.json +1 -1
- package/template/node_modules/@jant/core/CHANGELOG.md +6 -0
- package/template/node_modules/@jant/core/package.json +1 -5
- package/template/node_modules/@jant/core/src/preset.css +3 -1
- package/template/node_modules/@tailwindcss/{postcss → vite}/README.md +11 -61
- package/template/node_modules/@tailwindcss/vite/dist/index.d.mts +13 -0
- package/template/node_modules/@tailwindcss/vite/dist/index.mjs +1 -0
- package/template/node_modules/@tailwindcss/vite/node_modules/.bin/vite +21 -0
- package/template/node_modules/@tailwindcss/vite/package.json +42 -0
- package/template/package.json +1 -3
- package/template/src/style.css +0 -3
- package/template/vite.config.ts +2 -8
- package/template/node_modules/.bin/autoprefixer +0 -21
- package/template/node_modules/@jant/core/src/tailwind.ts +0 -20
- package/template/node_modules/@tailwindcss/postcss/dist/index.d.mts +0 -25
- package/template/node_modules/@tailwindcss/postcss/dist/index.d.ts +0 -25
- package/template/node_modules/@tailwindcss/postcss/dist/index.js +0 -10
- package/template/node_modules/@tailwindcss/postcss/dist/index.mjs +0 -10
- package/template/node_modules/@tailwindcss/postcss/package.json +0 -46
- package/template/node_modules/autoprefixer/LICENSE +0 -20
- package/template/node_modules/autoprefixer/README.md +0 -57
- package/template/node_modules/autoprefixer/bin/autoprefixer +0 -22
- package/template/node_modules/autoprefixer/data/prefixes.js +0 -1139
- package/template/node_modules/autoprefixer/lib/at-rule.js +0 -35
- package/template/node_modules/autoprefixer/lib/autoprefixer.d.ts +0 -95
- package/template/node_modules/autoprefixer/lib/autoprefixer.js +0 -164
- package/template/node_modules/autoprefixer/lib/brackets.js +0 -51
- package/template/node_modules/autoprefixer/lib/browsers.js +0 -79
- package/template/node_modules/autoprefixer/lib/declaration.js +0 -187
- package/template/node_modules/autoprefixer/lib/hacks/align-content.js +0 -49
- package/template/node_modules/autoprefixer/lib/hacks/align-items.js +0 -46
- package/template/node_modules/autoprefixer/lib/hacks/align-self.js +0 -56
- package/template/node_modules/autoprefixer/lib/hacks/animation.js +0 -17
- package/template/node_modules/autoprefixer/lib/hacks/appearance.js +0 -23
- package/template/node_modules/autoprefixer/lib/hacks/autofill.js +0 -26
- package/template/node_modules/autoprefixer/lib/hacks/backdrop-filter.js +0 -20
- package/template/node_modules/autoprefixer/lib/hacks/background-clip.js +0 -24
- package/template/node_modules/autoprefixer/lib/hacks/background-size.js +0 -23
- package/template/node_modules/autoprefixer/lib/hacks/block-logical.js +0 -40
- package/template/node_modules/autoprefixer/lib/hacks/border-image.js +0 -15
- package/template/node_modules/autoprefixer/lib/hacks/border-radius.js +0 -40
- package/template/node_modules/autoprefixer/lib/hacks/break-props.js +0 -63
- package/template/node_modules/autoprefixer/lib/hacks/cross-fade.js +0 -35
- package/template/node_modules/autoprefixer/lib/hacks/display-flex.js +0 -65
- package/template/node_modules/autoprefixer/lib/hacks/display-grid.js +0 -21
- package/template/node_modules/autoprefixer/lib/hacks/file-selector-button.js +0 -26
- package/template/node_modules/autoprefixer/lib/hacks/filter-value.js +0 -14
- package/template/node_modules/autoprefixer/lib/hacks/filter.js +0 -19
- package/template/node_modules/autoprefixer/lib/hacks/flex-basis.js +0 -39
- package/template/node_modules/autoprefixer/lib/hacks/flex-direction.js +0 -72
- package/template/node_modules/autoprefixer/lib/hacks/flex-flow.js +0 -53
- package/template/node_modules/autoprefixer/lib/hacks/flex-grow.js +0 -30
- package/template/node_modules/autoprefixer/lib/hacks/flex-shrink.js +0 -39
- package/template/node_modules/autoprefixer/lib/hacks/flex-spec.js +0 -19
- package/template/node_modules/autoprefixer/lib/hacks/flex-wrap.js +0 -19
- package/template/node_modules/autoprefixer/lib/hacks/flex.js +0 -54
- package/template/node_modules/autoprefixer/lib/hacks/fullscreen.js +0 -20
- package/template/node_modules/autoprefixer/lib/hacks/gradient.js +0 -447
- package/template/node_modules/autoprefixer/lib/hacks/grid-area.js +0 -34
- package/template/node_modules/autoprefixer/lib/hacks/grid-column-align.js +0 -28
- package/template/node_modules/autoprefixer/lib/hacks/grid-end.js +0 -52
- package/template/node_modules/autoprefixer/lib/hacks/grid-row-align.js +0 -28
- package/template/node_modules/autoprefixer/lib/hacks/grid-row-column.js +0 -33
- package/template/node_modules/autoprefixer/lib/hacks/grid-rows-columns.js +0 -125
- package/template/node_modules/autoprefixer/lib/hacks/grid-start.js +0 -33
- package/template/node_modules/autoprefixer/lib/hacks/grid-template-areas.js +0 -84
- package/template/node_modules/autoprefixer/lib/hacks/grid-template.js +0 -69
- package/template/node_modules/autoprefixer/lib/hacks/grid-utils.js +0 -1117
- package/template/node_modules/autoprefixer/lib/hacks/image-rendering.js +0 -48
- package/template/node_modules/autoprefixer/lib/hacks/image-set.js +0 -18
- package/template/node_modules/autoprefixer/lib/hacks/inline-logical.js +0 -34
- package/template/node_modules/autoprefixer/lib/hacks/intrinsic.js +0 -61
- package/template/node_modules/autoprefixer/lib/hacks/justify-content.js +0 -54
- package/template/node_modules/autoprefixer/lib/hacks/mask-border.js +0 -38
- package/template/node_modules/autoprefixer/lib/hacks/mask-composite.js +0 -88
- package/template/node_modules/autoprefixer/lib/hacks/order.js +0 -42
- package/template/node_modules/autoprefixer/lib/hacks/overscroll-behavior.js +0 -33
- package/template/node_modules/autoprefixer/lib/hacks/pixelated.js +0 -34
- package/template/node_modules/autoprefixer/lib/hacks/place-self.js +0 -32
- package/template/node_modules/autoprefixer/lib/hacks/placeholder-shown.js +0 -19
- package/template/node_modules/autoprefixer/lib/hacks/placeholder.js +0 -33
- package/template/node_modules/autoprefixer/lib/hacks/print-color-adjust.js +0 -25
- package/template/node_modules/autoprefixer/lib/hacks/text-decoration-skip-ink.js +0 -23
- package/template/node_modules/autoprefixer/lib/hacks/text-decoration.js +0 -25
- package/template/node_modules/autoprefixer/lib/hacks/text-emphasis-position.js +0 -14
- package/template/node_modules/autoprefixer/lib/hacks/transform-decl.js +0 -79
- package/template/node_modules/autoprefixer/lib/hacks/user-select.js +0 -33
- package/template/node_modules/autoprefixer/lib/hacks/writing-mode.js +0 -42
- package/template/node_modules/autoprefixer/lib/info.js +0 -123
- package/template/node_modules/autoprefixer/lib/old-selector.js +0 -67
- package/template/node_modules/autoprefixer/lib/old-value.js +0 -22
- package/template/node_modules/autoprefixer/lib/prefixer.js +0 -144
- package/template/node_modules/autoprefixer/lib/prefixes.js +0 -428
- package/template/node_modules/autoprefixer/lib/processor.js +0 -709
- package/template/node_modules/autoprefixer/lib/resolution.js +0 -97
- package/template/node_modules/autoprefixer/lib/selector.js +0 -150
- package/template/node_modules/autoprefixer/lib/supports.js +0 -302
- package/template/node_modules/autoprefixer/lib/transition.js +0 -329
- package/template/node_modules/autoprefixer/lib/utils.js +0 -93
- package/template/node_modules/autoprefixer/lib/value.js +0 -125
- package/template/node_modules/autoprefixer/lib/vendor.js +0 -14
- package/template/node_modules/autoprefixer/node_modules/.bin/autoprefixer +0 -21
- package/template/node_modules/autoprefixer/node_modules/.bin/browserslist +0 -21
- package/template/node_modules/autoprefixer/package.json +0 -48
- package/template/node_modules/postcss/LICENSE +0 -20
- package/template/node_modules/postcss/README.md +0 -29
- package/template/node_modules/postcss/lib/at-rule.d.ts +0 -140
- package/template/node_modules/postcss/lib/at-rule.js +0 -25
- package/template/node_modules/postcss/lib/comment.d.ts +0 -68
- package/template/node_modules/postcss/lib/comment.js +0 -13
- package/template/node_modules/postcss/lib/container.d.ts +0 -483
- package/template/node_modules/postcss/lib/container.js +0 -447
- package/template/node_modules/postcss/lib/css-syntax-error.d.ts +0 -248
- package/template/node_modules/postcss/lib/css-syntax-error.js +0 -133
- package/template/node_modules/postcss/lib/declaration.d.ts +0 -151
- package/template/node_modules/postcss/lib/declaration.js +0 -24
- package/template/node_modules/postcss/lib/document.d.ts +0 -69
- package/template/node_modules/postcss/lib/document.js +0 -33
- package/template/node_modules/postcss/lib/fromJSON.d.ts +0 -9
- package/template/node_modules/postcss/lib/fromJSON.js +0 -54
- package/template/node_modules/postcss/lib/input.d.ts +0 -227
- package/template/node_modules/postcss/lib/input.js +0 -265
- package/template/node_modules/postcss/lib/lazy-result.d.ts +0 -190
- package/template/node_modules/postcss/lib/lazy-result.js +0 -550
- package/template/node_modules/postcss/lib/list.d.ts +0 -60
- package/template/node_modules/postcss/lib/list.js +0 -58
- package/template/node_modules/postcss/lib/map-generator.js +0 -368
- package/template/node_modules/postcss/lib/no-work-result.d.ts +0 -46
- package/template/node_modules/postcss/lib/no-work-result.js +0 -138
- package/template/node_modules/postcss/lib/node.d.ts +0 -556
- package/template/node_modules/postcss/lib/node.js +0 -449
- package/template/node_modules/postcss/lib/parse.d.ts +0 -9
- package/template/node_modules/postcss/lib/parse.js +0 -42
- package/template/node_modules/postcss/lib/parser.js +0 -611
- package/template/node_modules/postcss/lib/postcss.d.mts +0 -69
- package/template/node_modules/postcss/lib/postcss.d.ts +0 -458
- package/template/node_modules/postcss/lib/postcss.js +0 -101
- package/template/node_modules/postcss/lib/postcss.mjs +0 -30
- package/template/node_modules/postcss/lib/previous-map.d.ts +0 -81
- package/template/node_modules/postcss/lib/previous-map.js +0 -144
- package/template/node_modules/postcss/lib/processor.d.ts +0 -115
- package/template/node_modules/postcss/lib/processor.js +0 -67
- package/template/node_modules/postcss/lib/result.d.ts +0 -205
- package/template/node_modules/postcss/lib/result.js +0 -42
- package/template/node_modules/postcss/lib/root.d.ts +0 -87
- package/template/node_modules/postcss/lib/root.js +0 -61
- package/template/node_modules/postcss/lib/rule.d.ts +0 -126
- package/template/node_modules/postcss/lib/rule.js +0 -27
- package/template/node_modules/postcss/lib/stringifier.d.ts +0 -46
- package/template/node_modules/postcss/lib/stringifier.js +0 -353
- package/template/node_modules/postcss/lib/stringify.d.ts +0 -9
- package/template/node_modules/postcss/lib/stringify.js +0 -11
- package/template/node_modules/postcss/lib/symbols.js +0 -5
- package/template/node_modules/postcss/lib/terminal-highlight.js +0 -70
- package/template/node_modules/postcss/lib/tokenize.js +0 -266
- package/template/node_modules/postcss/lib/warn-once.js +0 -13
- package/template/node_modules/postcss/lib/warning.d.ts +0 -147
- package/template/node_modules/postcss/lib/warning.js +0 -37
- package/template/node_modules/postcss/node_modules/.bin/nanoid +0 -21
- package/template/node_modules/postcss/package.json +0 -88
- package/template/tailwind.config.ts +0 -13
- /package/template/node_modules/@tailwindcss/{postcss → vite}/LICENSE +0 -0
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
let Prefixer = require('./prefixer')
|
|
2
|
-
|
|
3
|
-
class AtRule extends Prefixer {
|
|
4
|
-
/**
|
|
5
|
-
* Clone and add prefixes for at-rule
|
|
6
|
-
*/
|
|
7
|
-
add(rule, prefix) {
|
|
8
|
-
let prefixed = prefix + rule.name
|
|
9
|
-
|
|
10
|
-
let already = rule.parent.some(
|
|
11
|
-
i => i.name === prefixed && i.params === rule.params
|
|
12
|
-
)
|
|
13
|
-
if (already) {
|
|
14
|
-
return undefined
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
let cloned = this.clone(rule, { name: prefixed })
|
|
18
|
-
return rule.parent.insertBefore(rule, cloned)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Clone node with prefixes
|
|
23
|
-
*/
|
|
24
|
-
process(node) {
|
|
25
|
-
let parent = this.parentPrefix(node)
|
|
26
|
-
|
|
27
|
-
for (let prefix of this.prefixes) {
|
|
28
|
-
if (!parent || parent === prefix) {
|
|
29
|
-
this.add(node, prefix)
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
module.exports = AtRule
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Plugin } from 'postcss'
|
|
2
|
-
import { Stats } from 'browserslist'
|
|
3
|
-
|
|
4
|
-
declare function autoprefixer<T extends string[]>(
|
|
5
|
-
...args: [...T, autoprefixer.Options]
|
|
6
|
-
): Plugin & autoprefixer.ExportedAPI
|
|
7
|
-
|
|
8
|
-
declare function autoprefixer(
|
|
9
|
-
browsers: string[],
|
|
10
|
-
options?: autoprefixer.Options
|
|
11
|
-
): Plugin & autoprefixer.ExportedAPI
|
|
12
|
-
|
|
13
|
-
declare function autoprefixer(
|
|
14
|
-
options?: autoprefixer.Options
|
|
15
|
-
): Plugin & autoprefixer.ExportedAPI
|
|
16
|
-
|
|
17
|
-
declare namespace autoprefixer {
|
|
18
|
-
type GridValue = 'autoplace' | 'no-autoplace'
|
|
19
|
-
|
|
20
|
-
interface Options {
|
|
21
|
-
/** environment for `Browserslist` */
|
|
22
|
-
env?: string
|
|
23
|
-
|
|
24
|
-
/** should Autoprefixer use Visual Cascade, if CSS is uncompressed */
|
|
25
|
-
cascade?: boolean
|
|
26
|
-
|
|
27
|
-
/** should Autoprefixer add prefixes. */
|
|
28
|
-
add?: boolean
|
|
29
|
-
|
|
30
|
-
/** should Autoprefixer [remove outdated] prefixes */
|
|
31
|
-
remove?: boolean
|
|
32
|
-
|
|
33
|
-
/** should Autoprefixer add prefixes for @supports parameters. */
|
|
34
|
-
supports?: boolean
|
|
35
|
-
|
|
36
|
-
/** should Autoprefixer add prefixes for flexbox properties */
|
|
37
|
-
flexbox?: boolean | 'no-2009'
|
|
38
|
-
|
|
39
|
-
/** should Autoprefixer add IE 10-11 prefixes for Grid Layout properties */
|
|
40
|
-
grid?: boolean | GridValue
|
|
41
|
-
|
|
42
|
-
/** custom usage statistics for > 10% in my stats browsers query */
|
|
43
|
-
stats?: Stats
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* list of queries for target browsers.
|
|
47
|
-
* Try to not use it.
|
|
48
|
-
* The best practice is to use `.browserslistrc` config or `browserslist` key in `package.json`
|
|
49
|
-
* to share target browsers with Babel, ESLint and Stylelint
|
|
50
|
-
*/
|
|
51
|
-
overrideBrowserslist?: string | string[]
|
|
52
|
-
|
|
53
|
-
/** do not raise error on unknown browser version in `Browserslist` config. */
|
|
54
|
-
ignoreUnknownVersions?: boolean
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
interface ExportedAPI {
|
|
58
|
-
/** Autoprefixer data */
|
|
59
|
-
data: {
|
|
60
|
-
browsers: { [browser: string]: object | undefined }
|
|
61
|
-
prefixes: { [prefixName: string]: object | undefined }
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/** Autoprefixer default browsers */
|
|
65
|
-
defaults: string[]
|
|
66
|
-
|
|
67
|
-
/** Inspect with default Autoprefixer */
|
|
68
|
-
info(options?: { from?: string }): string
|
|
69
|
-
|
|
70
|
-
options: Options
|
|
71
|
-
|
|
72
|
-
browsers: string | string[]
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/** Autoprefixer data */
|
|
76
|
-
let data: ExportedAPI['data']
|
|
77
|
-
|
|
78
|
-
/** Autoprefixer default browsers */
|
|
79
|
-
let defaults: ExportedAPI['defaults']
|
|
80
|
-
|
|
81
|
-
/** Inspect with default Autoprefixer */
|
|
82
|
-
let info: ExportedAPI['info']
|
|
83
|
-
|
|
84
|
-
let postcss: true
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
declare global {
|
|
88
|
-
namespace NodeJS {
|
|
89
|
-
interface ProcessEnv {
|
|
90
|
-
AUTOPREFIXER_GRID?: autoprefixer.GridValue
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export = autoprefixer
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
let browserslist = require('browserslist')
|
|
2
|
-
let { agents } = require('caniuse-lite/dist/unpacker/agents')
|
|
3
|
-
let pico = require('picocolors')
|
|
4
|
-
|
|
5
|
-
let dataPrefixes = require('../data/prefixes')
|
|
6
|
-
let Browsers = require('./browsers')
|
|
7
|
-
let getInfo = require('./info')
|
|
8
|
-
let Prefixes = require('./prefixes')
|
|
9
|
-
|
|
10
|
-
let autoprefixerData = { browsers: agents, prefixes: dataPrefixes }
|
|
11
|
-
|
|
12
|
-
const WARNING =
|
|
13
|
-
'\n' +
|
|
14
|
-
' Replace Autoprefixer `browsers` option to Browserslist config.\n' +
|
|
15
|
-
' Use `browserslist` key in `package.json` or `.browserslistrc` file.\n' +
|
|
16
|
-
'\n' +
|
|
17
|
-
' Using `browsers` option can cause errors. Browserslist config can\n' +
|
|
18
|
-
' be used for Babel, Autoprefixer, postcss-normalize and other tools.\n' +
|
|
19
|
-
'\n' +
|
|
20
|
-
' If you really need to use option, rename it to `overrideBrowserslist`.\n' +
|
|
21
|
-
'\n' +
|
|
22
|
-
' Learn more at:\n' +
|
|
23
|
-
' https://github.com/browserslist/browserslist#readme\n' +
|
|
24
|
-
' https://twitter.com/browserslist\n' +
|
|
25
|
-
'\n'
|
|
26
|
-
|
|
27
|
-
function isPlainObject(obj) {
|
|
28
|
-
return Object.prototype.toString.apply(obj) === '[object Object]'
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
let cache = new Map()
|
|
32
|
-
|
|
33
|
-
function timeCapsule(result, prefixes) {
|
|
34
|
-
if (prefixes.browsers.selected.length === 0) {
|
|
35
|
-
return
|
|
36
|
-
}
|
|
37
|
-
if (prefixes.add.selectors.length > 0) {
|
|
38
|
-
return
|
|
39
|
-
}
|
|
40
|
-
if (Object.keys(prefixes.add).length > 2) {
|
|
41
|
-
return
|
|
42
|
-
}
|
|
43
|
-
/* c8 ignore next 11 */
|
|
44
|
-
result.warn(
|
|
45
|
-
'Autoprefixer target browsers do not need any prefixes.' +
|
|
46
|
-
'You do not need Autoprefixer anymore.\n' +
|
|
47
|
-
'Check your Browserslist config to be sure that your targets ' +
|
|
48
|
-
'are set up correctly.\n' +
|
|
49
|
-
'\n' +
|
|
50
|
-
' Learn more at:\n' +
|
|
51
|
-
' https://github.com/postcss/autoprefixer#readme\n' +
|
|
52
|
-
' https://github.com/browserslist/browserslist#readme\n' +
|
|
53
|
-
'\n'
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
module.exports = plugin
|
|
58
|
-
|
|
59
|
-
function plugin(...reqs) {
|
|
60
|
-
let options
|
|
61
|
-
if (reqs.length === 1 && isPlainObject(reqs[0])) {
|
|
62
|
-
options = reqs[0]
|
|
63
|
-
reqs = undefined
|
|
64
|
-
} else if (reqs.length === 0 || (reqs.length === 1 && !reqs[0])) {
|
|
65
|
-
reqs = undefined
|
|
66
|
-
} else if (reqs.length <= 2 && (Array.isArray(reqs[0]) || !reqs[0])) {
|
|
67
|
-
options = reqs[1]
|
|
68
|
-
reqs = reqs[0]
|
|
69
|
-
} else if (typeof reqs[reqs.length - 1] === 'object') {
|
|
70
|
-
options = reqs.pop()
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (!options) {
|
|
74
|
-
options = {}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (options.browser) {
|
|
78
|
-
throw new Error(
|
|
79
|
-
'Change `browser` option to `overrideBrowserslist` in Autoprefixer'
|
|
80
|
-
)
|
|
81
|
-
} else if (options.browserslist) {
|
|
82
|
-
throw new Error(
|
|
83
|
-
'Change `browserslist` option to `overrideBrowserslist` in Autoprefixer'
|
|
84
|
-
)
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
if (options.overrideBrowserslist) {
|
|
88
|
-
reqs = options.overrideBrowserslist
|
|
89
|
-
} else if (options.browsers) {
|
|
90
|
-
if (typeof console !== 'undefined' && console.warn) {
|
|
91
|
-
console.warn(
|
|
92
|
-
pico.red(WARNING.replace(/`[^`]+`/g, i => pico.yellow(i.slice(1, -1))))
|
|
93
|
-
)
|
|
94
|
-
}
|
|
95
|
-
reqs = options.browsers
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
let brwlstOpts = {
|
|
99
|
-
env: options.env,
|
|
100
|
-
ignoreUnknownVersions: options.ignoreUnknownVersions,
|
|
101
|
-
stats: options.stats
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
function loadPrefixes(opts) {
|
|
105
|
-
let d = autoprefixerData
|
|
106
|
-
let browsers = new Browsers(d.browsers, reqs, opts, brwlstOpts)
|
|
107
|
-
let key = browsers.selected.join(', ') + JSON.stringify(options)
|
|
108
|
-
|
|
109
|
-
if (!cache.has(key)) {
|
|
110
|
-
cache.set(key, new Prefixes(d.prefixes, browsers, options))
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
return cache.get(key)
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return {
|
|
117
|
-
browsers: reqs,
|
|
118
|
-
|
|
119
|
-
info(opts) {
|
|
120
|
-
opts = opts || {}
|
|
121
|
-
opts.from = opts.from || process.cwd()
|
|
122
|
-
return getInfo(loadPrefixes(opts))
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
options,
|
|
126
|
-
|
|
127
|
-
postcssPlugin: 'autoprefixer',
|
|
128
|
-
prepare(result) {
|
|
129
|
-
let prefixes = loadPrefixes({
|
|
130
|
-
env: options.env,
|
|
131
|
-
from: result.opts.from
|
|
132
|
-
})
|
|
133
|
-
|
|
134
|
-
return {
|
|
135
|
-
OnceExit(root) {
|
|
136
|
-
timeCapsule(result, prefixes)
|
|
137
|
-
if (options.remove !== false) {
|
|
138
|
-
prefixes.processor.remove(root, result)
|
|
139
|
-
}
|
|
140
|
-
if (options.add !== false) {
|
|
141
|
-
prefixes.processor.add(root, result)
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
plugin.postcss = true
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Autoprefixer data
|
|
153
|
-
*/
|
|
154
|
-
plugin.data = autoprefixerData
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Autoprefixer default browsers
|
|
158
|
-
*/
|
|
159
|
-
plugin.defaults = browserslist.defaults
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Inspect with default Autoprefixer
|
|
163
|
-
*/
|
|
164
|
-
plugin.info = () => plugin().info()
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
function last(array) {
|
|
2
|
-
return array[array.length - 1]
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
let brackets = {
|
|
6
|
-
/**
|
|
7
|
-
* Parse string to nodes tree
|
|
8
|
-
*/
|
|
9
|
-
parse(str) {
|
|
10
|
-
let current = ['']
|
|
11
|
-
let stack = [current]
|
|
12
|
-
|
|
13
|
-
for (let sym of str) {
|
|
14
|
-
if (sym === '(') {
|
|
15
|
-
current = ['']
|
|
16
|
-
last(stack).push(current)
|
|
17
|
-
stack.push(current)
|
|
18
|
-
continue
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (sym === ')') {
|
|
22
|
-
stack.pop()
|
|
23
|
-
current = last(stack)
|
|
24
|
-
current.push('')
|
|
25
|
-
continue
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
current[current.length - 1] += sym
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return stack[0]
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Generate output string by nodes tree
|
|
36
|
-
*/
|
|
37
|
-
stringify(ast) {
|
|
38
|
-
let result = ''
|
|
39
|
-
for (let i of ast) {
|
|
40
|
-
if (typeof i === 'object') {
|
|
41
|
-
result += `(${brackets.stringify(i)})`
|
|
42
|
-
continue
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
result += i
|
|
46
|
-
}
|
|
47
|
-
return result
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
module.exports = brackets
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
let browserslist = require('browserslist')
|
|
2
|
-
let { agents } = require('caniuse-lite/dist/unpacker/agents')
|
|
3
|
-
|
|
4
|
-
let utils = require('./utils')
|
|
5
|
-
|
|
6
|
-
class Browsers {
|
|
7
|
-
constructor(data, requirements, options, browserslistOpts) {
|
|
8
|
-
this.data = data
|
|
9
|
-
this.options = options || {}
|
|
10
|
-
this.browserslistOpts = browserslistOpts || {}
|
|
11
|
-
this.selected = this.parse(requirements)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Return all prefixes for default browser data
|
|
16
|
-
*/
|
|
17
|
-
static prefixes() {
|
|
18
|
-
if (this.prefixesCache) {
|
|
19
|
-
return this.prefixesCache
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
this.prefixesCache = []
|
|
23
|
-
for (let name in agents) {
|
|
24
|
-
this.prefixesCache.push(`-${agents[name].prefix}-`)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
this.prefixesCache = utils
|
|
28
|
-
.uniq(this.prefixesCache)
|
|
29
|
-
.sort((a, b) => b.length - a.length)
|
|
30
|
-
|
|
31
|
-
return this.prefixesCache
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Check is value contain any possible prefix
|
|
36
|
-
*/
|
|
37
|
-
static withPrefix(value) {
|
|
38
|
-
if (!this.prefixesRegexp) {
|
|
39
|
-
this.prefixesRegexp = new RegExp(this.prefixes().join('|'))
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return this.prefixesRegexp.test(value)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Is browser is selected by requirements
|
|
47
|
-
*/
|
|
48
|
-
isSelected(browser) {
|
|
49
|
-
return this.selected.includes(browser)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Return browsers selected by requirements
|
|
54
|
-
*/
|
|
55
|
-
parse(requirements) {
|
|
56
|
-
let opts = {}
|
|
57
|
-
for (let i in this.browserslistOpts) {
|
|
58
|
-
opts[i] = this.browserslistOpts[i]
|
|
59
|
-
}
|
|
60
|
-
opts.path = this.options.from
|
|
61
|
-
return browserslist(requirements, opts)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Return prefix for selected browser
|
|
66
|
-
*/
|
|
67
|
-
prefix(browser) {
|
|
68
|
-
let [name, version] = browser.split(' ')
|
|
69
|
-
let data = this.data[name]
|
|
70
|
-
|
|
71
|
-
let prefix = data.prefix_exceptions && data.prefix_exceptions[version]
|
|
72
|
-
if (!prefix) {
|
|
73
|
-
prefix = data.prefix
|
|
74
|
-
}
|
|
75
|
-
return `-${prefix}-`
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
module.exports = Browsers
|
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
let Browsers = require('./browsers')
|
|
2
|
-
let Prefixer = require('./prefixer')
|
|
3
|
-
let utils = require('./utils')
|
|
4
|
-
|
|
5
|
-
class Declaration extends Prefixer {
|
|
6
|
-
/**
|
|
7
|
-
* Clone and add prefixes for declaration
|
|
8
|
-
*/
|
|
9
|
-
add(decl, prefix, prefixes, result) {
|
|
10
|
-
let prefixed = this.prefixed(decl.prop, prefix)
|
|
11
|
-
if (
|
|
12
|
-
this.isAlready(decl, prefixed) ||
|
|
13
|
-
this.otherPrefixes(decl.value, prefix)
|
|
14
|
-
) {
|
|
15
|
-
return undefined
|
|
16
|
-
}
|
|
17
|
-
return this.insert(decl, prefix, prefixes, result)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Calculate indentation to create visual cascade
|
|
22
|
-
*/
|
|
23
|
-
calcBefore(prefixes, decl, prefix = '') {
|
|
24
|
-
let max = this.maxPrefixed(prefixes, decl)
|
|
25
|
-
let diff = max - utils.removeNote(prefix).length
|
|
26
|
-
|
|
27
|
-
let before = decl.raw('before')
|
|
28
|
-
if (diff > 0) {
|
|
29
|
-
before += Array(diff).fill(' ').join('')
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return before
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Always true, because we already get prefixer by property name
|
|
37
|
-
*/
|
|
38
|
-
check(/* decl */) {
|
|
39
|
-
return true
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Clone and insert new declaration
|
|
44
|
-
*/
|
|
45
|
-
insert(decl, prefix, prefixes) {
|
|
46
|
-
let cloned = this.set(this.clone(decl), prefix)
|
|
47
|
-
if (!cloned) return undefined
|
|
48
|
-
|
|
49
|
-
let already = decl.parent.some(
|
|
50
|
-
i => i.prop === cloned.prop && i.value === cloned.value
|
|
51
|
-
)
|
|
52
|
-
if (already) {
|
|
53
|
-
return undefined
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (this.needCascade(decl)) {
|
|
57
|
-
cloned.raws.before = this.calcBefore(prefixes, decl, prefix)
|
|
58
|
-
}
|
|
59
|
-
return decl.parent.insertBefore(decl, cloned)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Did this declaration has this prefix above
|
|
64
|
-
*/
|
|
65
|
-
isAlready(decl, prefixed) {
|
|
66
|
-
let already = this.all.group(decl).up(i => i.prop === prefixed)
|
|
67
|
-
if (!already) {
|
|
68
|
-
already = this.all.group(decl).down(i => i.prop === prefixed)
|
|
69
|
-
}
|
|
70
|
-
return already
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Return maximum length of possible prefixed property
|
|
75
|
-
*/
|
|
76
|
-
maxPrefixed(prefixes, decl) {
|
|
77
|
-
if (decl._autoprefixerMax) {
|
|
78
|
-
return decl._autoprefixerMax
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
let max = 0
|
|
82
|
-
for (let prefix of prefixes) {
|
|
83
|
-
prefix = utils.removeNote(prefix)
|
|
84
|
-
if (prefix.length > max) {
|
|
85
|
-
max = prefix.length
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
decl._autoprefixerMax = max
|
|
89
|
-
|
|
90
|
-
return decl._autoprefixerMax
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Should we use visual cascade for prefixes
|
|
95
|
-
*/
|
|
96
|
-
needCascade(decl) {
|
|
97
|
-
if (!decl._autoprefixerCascade) {
|
|
98
|
-
decl._autoprefixerCascade =
|
|
99
|
-
this.all.options.cascade !== false && decl.raw('before').includes('\n')
|
|
100
|
-
}
|
|
101
|
-
return decl._autoprefixerCascade
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* Return unprefixed version of property
|
|
106
|
-
*/
|
|
107
|
-
normalize(prop) {
|
|
108
|
-
return prop
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Return list of prefixed properties to clean old prefixes
|
|
113
|
-
*/
|
|
114
|
-
old(prop, prefix) {
|
|
115
|
-
return [this.prefixed(prop, prefix)]
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Check `value`, that it contain other prefixes, rather than `prefix`
|
|
120
|
-
*/
|
|
121
|
-
otherPrefixes(value, prefix) {
|
|
122
|
-
for (let other of Browsers.prefixes()) {
|
|
123
|
-
if (other === prefix) {
|
|
124
|
-
continue
|
|
125
|
-
}
|
|
126
|
-
if (value.includes(other)) {
|
|
127
|
-
return value.replace(/var\([^)]+\)/, '').includes(other)
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return false
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Return prefixed version of property
|
|
135
|
-
*/
|
|
136
|
-
prefixed(prop, prefix) {
|
|
137
|
-
return prefix + prop
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Add spaces for visual cascade
|
|
142
|
-
*/
|
|
143
|
-
process(decl, result) {
|
|
144
|
-
if (!this.needCascade(decl)) {
|
|
145
|
-
super.process(decl, result)
|
|
146
|
-
return
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
let prefixes = super.process(decl, result)
|
|
150
|
-
|
|
151
|
-
if (!prefixes || !prefixes.length) {
|
|
152
|
-
return
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
this.restoreBefore(decl)
|
|
156
|
-
decl.raws.before = this.calcBefore(prefixes, decl)
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Remove visual cascade
|
|
161
|
-
*/
|
|
162
|
-
restoreBefore(decl) {
|
|
163
|
-
let lines = decl.raw('before').split('\n')
|
|
164
|
-
let min = lines[lines.length - 1]
|
|
165
|
-
|
|
166
|
-
this.all.group(decl).up(prefixed => {
|
|
167
|
-
let array = prefixed.raw('before').split('\n')
|
|
168
|
-
let last = array[array.length - 1]
|
|
169
|
-
if (last.length < min.length) {
|
|
170
|
-
min = last
|
|
171
|
-
}
|
|
172
|
-
})
|
|
173
|
-
|
|
174
|
-
lines[lines.length - 1] = min
|
|
175
|
-
decl.raws.before = lines.join('\n')
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Set prefix to declaration
|
|
180
|
-
*/
|
|
181
|
-
set(decl, prefix) {
|
|
182
|
-
decl.prop = this.prefixed(decl.prop, prefix)
|
|
183
|
-
return decl
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
module.exports = Declaration
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
let Declaration = require('../declaration')
|
|
2
|
-
let flexSpec = require('./flex-spec')
|
|
3
|
-
|
|
4
|
-
class AlignContent extends Declaration {
|
|
5
|
-
/**
|
|
6
|
-
* Return property name by final spec
|
|
7
|
-
*/
|
|
8
|
-
normalize() {
|
|
9
|
-
return 'align-content'
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Change property name for 2012 spec
|
|
14
|
-
*/
|
|
15
|
-
prefixed(prop, prefix) {
|
|
16
|
-
let spec
|
|
17
|
-
;[spec, prefix] = flexSpec(prefix)
|
|
18
|
-
if (spec === 2012) {
|
|
19
|
-
return prefix + 'flex-line-pack'
|
|
20
|
-
}
|
|
21
|
-
return super.prefixed(prop, prefix)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Change value for 2012 spec and ignore prefix for 2009
|
|
26
|
-
*/
|
|
27
|
-
set(decl, prefix) {
|
|
28
|
-
let spec = flexSpec(prefix)[0]
|
|
29
|
-
if (spec === 2012) {
|
|
30
|
-
decl.value = AlignContent.oldValues[decl.value] || decl.value
|
|
31
|
-
return super.set(decl, prefix)
|
|
32
|
-
}
|
|
33
|
-
if (spec === 'final') {
|
|
34
|
-
return super.set(decl, prefix)
|
|
35
|
-
}
|
|
36
|
-
return undefined
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
AlignContent.names = ['align-content', 'flex-line-pack']
|
|
41
|
-
|
|
42
|
-
AlignContent.oldValues = {
|
|
43
|
-
'flex-end': 'end',
|
|
44
|
-
'flex-start': 'start',
|
|
45
|
-
'space-around': 'distribute',
|
|
46
|
-
'space-between': 'justify'
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
module.exports = AlignContent
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
let Declaration = require('../declaration')
|
|
2
|
-
let flexSpec = require('./flex-spec')
|
|
3
|
-
|
|
4
|
-
class AlignItems extends Declaration {
|
|
5
|
-
/**
|
|
6
|
-
* Return property name by final spec
|
|
7
|
-
*/
|
|
8
|
-
normalize() {
|
|
9
|
-
return 'align-items'
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Change property name for 2009 and 2012 specs
|
|
14
|
-
*/
|
|
15
|
-
prefixed(prop, prefix) {
|
|
16
|
-
let spec
|
|
17
|
-
;[spec, prefix] = flexSpec(prefix)
|
|
18
|
-
if (spec === 2009) {
|
|
19
|
-
return prefix + 'box-align'
|
|
20
|
-
}
|
|
21
|
-
if (spec === 2012) {
|
|
22
|
-
return prefix + 'flex-align'
|
|
23
|
-
}
|
|
24
|
-
return super.prefixed(prop, prefix)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Change value for 2009 and 2012 specs
|
|
29
|
-
*/
|
|
30
|
-
set(decl, prefix) {
|
|
31
|
-
let spec = flexSpec(prefix)[0]
|
|
32
|
-
if (spec === 2009 || spec === 2012) {
|
|
33
|
-
decl.value = AlignItems.oldValues[decl.value] || decl.value
|
|
34
|
-
}
|
|
35
|
-
return super.set(decl, prefix)
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
AlignItems.names = ['align-items', 'flex-align', 'box-align']
|
|
40
|
-
|
|
41
|
-
AlignItems.oldValues = {
|
|
42
|
-
'flex-end': 'end',
|
|
43
|
-
'flex-start': 'start'
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
module.exports = AlignItems
|