@syncify/cli 0.3.0-beta → 1.0.0-alpha.1

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.
Files changed (41) hide show
  1. package/LICENSE +10 -6
  2. package/dist/index.d.cts +1815 -0
  3. package/dist/index.d.ts +1815 -0
  4. package/package.json +101 -103
  5. package/pnpm-lock.yaml +16312 -4430
  6. package/readme.md +76 -2184
  7. package/scripts/hot.js.liquid +25 -0
  8. package/dist/api.js +0 -16
  9. package/dist/cjs.js +0 -236
  10. package/dist/cli.js +0 -11
  11. package/dist/index.js +0 -18
  12. package/hot.js.liquid +0 -3
  13. package/schema/syncify.config.json +0 -676
  14. package/schema/syncify.env.json +0 -58
  15. package/schema/syncify.package.json +0 -11
  16. package/types/api.d.ts +0 -319
  17. package/types/bundle/cache.d.ts +0 -101
  18. package/types/bundle/commands.d.ts +0 -396
  19. package/types/bundle/errors.d.ts +0 -101
  20. package/types/bundle/file.d.ts +0 -285
  21. package/types/bundle/filters.d.ts +0 -81
  22. package/types/bundle/hot.d.ts +0 -185
  23. package/types/bundle/index.d.ts +0 -603
  24. package/types/bundle/plugin.d.ts +0 -127
  25. package/types/bundle/processors.d.ts +0 -54
  26. package/types/bundle/reports.d.ts +0 -123
  27. package/types/bundle/requests.d.ts +0 -374
  28. package/types/bundle/shared.d.ts +0 -124
  29. package/types/cli.d.ts +0 -547
  30. package/types/config/index.d.ts +0 -550
  31. package/types/config/terser.d.ts +0 -319
  32. package/types/config/views.d.ts +0 -191
  33. package/types/index.d.ts +0 -55
  34. package/types/modules/html-minifier-terser.d.ts +0 -218
  35. package/types/stores.d.ts +0 -11
  36. package/types/transforms/image.d.ts +0 -15
  37. package/types/transforms/json.d.ts +0 -51
  38. package/types/transforms/pages.d.ts +0 -254
  39. package/types/transforms/script.d.ts +0 -308
  40. package/types/transforms/style.d.ts +0 -219
  41. package/types/transforms/svg.d.ts +0 -189
@@ -1,218 +0,0 @@
1
- // Type definitions for html-minifier-terser 7.0
2
- // Project: https://github.com/terser/html-minifier-terser#readme
3
- // Definitions by: Piotr Błażejewicz <https://github.com/peterblazejewicz>
4
- // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
-
6
- /**
7
- * Most of the options are disabled by default
8
- */
9
- export interface HTMLMinifierTerserOptions {
10
- /**
11
- * Treat attributes in case sensitive manner (useful for custom HTML tags)
12
- * @default false
13
- */
14
- caseSensitive?: boolean | undefined;
15
- /**
16
- * Omit attribute values from boolean attributes
17
- * @default false
18
- */
19
- collapseBooleanAttributes?: boolean | undefined;
20
- /**
21
- * Don't leave any spaces between display:inline;
22
- * elements when collapsing. Must be used in conjunction with collapseWhitespace=true
23
- * @default false
24
- */
25
- collapseInlineTagWhitespace?: boolean | undefined;
26
- /**
27
- * Collapse white space that contributes to text nodes in a document tree
28
- * @default false
29
- */
30
- collapseWhitespace?: boolean | undefined;
31
- /**
32
- * Always collapse to 1 space (never remove it entirely). Must be used in conjunction with `collapseWhitespace=true`
33
- * @default false
34
- */
35
- conservativeCollapse?: boolean | undefined;
36
- /**
37
- * Handle parse errors
38
- * @default false
39
- */
40
- continueOnParseError?: boolean | undefined;
41
- /**
42
- * Arrays of regex'es that allow to support custom attribute assign expressions (e.g. `'<div flex?="{{mode != cover}}"></div>'`)
43
- * @default []
44
- */
45
- customAttrAssign?: RegExp[] | undefined;
46
- /**
47
- * Regex that specifies custom attribute to strip newlines from (e.g. `/ng-class/`
48
- */
49
- customAttrCollapse?: RegExp | undefined;
50
- /**
51
- * Arrays of regex'es that allow to support custom attribute surround expressions (e.g. `<input {{#if value}}checked="checked"{{/if}}>`)
52
- * @default []
53
- */
54
- customAttrSurround?: RegExp[] | undefined;
55
- /**
56
- * Arrays of regex'es that allow to support custom event attributes for `minifyJS` (e.g. `ng-click`)
57
- * @default [/^on[a-z]{3,}$/]
58
- */
59
- customEventAttributes?: RegExp[] | undefined;
60
- /**
61
- * Use direct Unicode characters whenever possible
62
- * @default false
63
- */
64
- decodeEntities?: boolean | undefined;
65
- /**
66
- * Parse input according to HTML5 specifications
67
- * @default true
68
- */
69
- html5?: boolean | undefined;
70
- /**
71
- * Array of regex'es that allow to ignore certain comments, when matched
72
- * @default [ /^!/, /^\s*#/ ]
73
- */
74
- ignoreCustomComments?: RegExp[] | undefined;
75
- /**
76
- * Array of regex'es that allow to ignore certain fragments, when matched (e.g. `<?php ... ?>`, `{{ ... }}`, etc.)
77
- * @default [/<%[\s\S]*?%>/, /<\?[\s\S]\*?\?>/]
78
- */
79
- ignoreCustomFragments?: RegExp[] | undefined;
80
- /**
81
- * Insert tags generated by HTML parser
82
- * @default true
83
- */
84
- includeAutoGeneratedTags?: boolean | undefined;
85
- /**
86
- * Keep the trailing slash on singleton elements
87
- * @default false
88
- */
89
- keepClosingSlash?: boolean | undefined;
90
- /**
91
- * Specify a maximum line length. Compressed output will be split by newlines at valid HTML split-points
92
- */
93
- maxLineLength?: number | undefined;
94
- /**
95
- * Minify CSS in style elements and style attributes
96
- * @default false
97
- */
98
- minifyCSS?: boolean | object | ((text: string, type?: string) => string) | undefined;
99
- /**
100
- * Minify JavaScript in script elements and event attributes
101
- * @default false
102
- */
103
- minifyJS?: boolean | object | ((text: string, inline?: boolean) => string) | undefined;
104
- /**
105
- * Minify URLs in various attributes
106
- * @default false
107
- */
108
- minifyURLs?: boolean | string | object | ((text: string) => string) | undefined;
109
- /**
110
- * Never add a newline before a tag that closes an element
111
- *
112
- * @default false
113
- */
114
- noNewlinesBeforeTagClose?: boolean | undefined;
115
- /**
116
- * Always collapse to 1 line break (never remove it entirely) when whitespace between tags include a line break.
117
- * Must be used in conjunction with `collapseWhitespace=true`
118
- * @default false
119
- */
120
- preserveLineBreaks?: boolean | undefined;
121
- /**
122
- * Prevents the escaping of the values of attributes
123
- * @default false
124
- */
125
- preventAttributesEscaping?: boolean | undefined;
126
- /**
127
- * Process contents of conditional comments through minifier
128
- * @default false
129
- */
130
- processConditionalComments?: boolean | undefined;
131
- /**
132
- * Array of strings corresponding to types of script elements to process through minifier
133
- * (e.g. `text/ng-template`, `text/x-handlebars-template`, etc.)
134
- * @default []
135
- */
136
- processScripts?: string[] | undefined;
137
- /**
138
- * Type of quote to use for attribute values (' or ")
139
- */
140
- quoteCharacter?: string | undefined;
141
- /**
142
- * Remove quotes around attributes when possible
143
- * @default false
144
- */
145
- removeAttributeQuotes?: boolean | undefined;
146
- /**
147
- * Strip HTML comments
148
- * @default false
149
- */
150
- removeComments?: boolean | undefined;
151
- /**
152
- * Remove all attributes with whitespace-only values
153
- * @default false
154
- */
155
- removeEmptyAttributes?: boolean | ((attrName: string, tag: string) => boolean) | undefined;
156
- /**
157
- * Remove all elements with empty contents
158
- *
159
- * @default false
160
- */
161
- removeEmptyElements?: boolean | undefined;
162
- /**
163
- * Remove optional tags
164
- *
165
- * @default false
166
- */
167
- removeOptionalTags?: boolean | undefined;
168
- /**
169
- * Remove attributes when value matches default
170
- *
171
- * @default false
172
- */
173
- removeRedundantAttributes?: boolean | undefined;
174
- /**
175
- * Remove `type="text/javascript"` from `script` tags. Other `type` attribute values are left intact
176
- *
177
- * @default false
178
- */
179
- removeScriptTypeAttributes?: boolean | undefined;
180
- /**
181
- * Remove `type="text/css"` from `style` and `link` tags. Other `type` attribute values are left intact
182
- *
183
- * @default false
184
- */
185
- removeStyleLinkTypeAttributes?: boolean | undefined;
186
- /**
187
- * Remove space between attributes whenever possible. **Note that this will result in invalid HTML!**
188
- * @default false
189
- */
190
- removeTagWhitespace?: boolean | undefined;
191
- /**
192
- * Sort attributes by frequency
193
- * @default false
194
- */
195
- sortAttributes?: boolean | undefined;
196
- /**
197
- * Sort style classes by frequency
198
- * @default false
199
- */
200
- sortClassName?: boolean | undefined;
201
- /**
202
- * Trim white space around `ignoreCustomFragments`
203
- * @default false
204
- */
205
- trimCustomFragments?: boolean | undefined;
206
- /**
207
- * Replaces the `doctype` with the short (HTML5) doctype
208
- * @default false
209
- */
210
- useShortDoctype?: boolean | undefined;
211
- }
212
-
213
- /**
214
- * HTMLMinifier is a highly configurable, well-tested, JavaScript-based HTML minifier.
215
- *
216
- * @async
217
- */
218
- export function minify(value: string, options?: HTMLMinifierTerserOptions): Promise<string>;
package/types/stores.d.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * Dev Theme ID for syncify.myshopify.com
3
- */
4
- declare type DevThemeID = 12345679
5
-
6
- /**
7
- * Prod Theme ID for syncify.myshopify.com
8
- */
9
- declare type ProdThemeID = 12345679888
10
-
11
- export type IDS = DevThemeID | ProdThemeID
@@ -1,15 +0,0 @@
1
- import type { SharpOptions as SharpConfig } from 'sharp';
2
- import type { GetProcessorConfigs } from '../bundle/shared';
3
-
4
- export type { SharpConfig };
5
-
6
- /* -------------------------------------------- */
7
- /* INTERNAL USE */
8
- /* -------------------------------------------- */
9
-
10
- /**
11
- * **INTERNAL USE**
12
- *
13
- * Processor Configuration
14
- */
15
- export type SharpProcesser = GetProcessorConfigs<SharpConfig>
@@ -1,51 +0,0 @@
1
- import type { Tester } from 'anymatch';
2
- import type { Merge } from 'type-fest';
3
-
4
- export interface JSONConfig {
5
- /**
6
- * The indentation level
7
- *
8
- * @default 2
9
- */
10
- indent?: number;
11
- /**
12
- * Whether to use `\t` identation characters.
13
- *
14
- * @default false
15
- */
16
- useTab?: boolean;
17
- /**
18
- * If line termination should be Windows (CRLF) format.
19
- * Unix (LF) format is the default.
20
- *
21
- * @default false
22
- */
23
- crlf?: boolean;
24
- /**
25
- * An optional string list of paths/filenames to exclude
26
- * from processing, ie: pass through
27
- *
28
- * @default false
29
- */
30
- exclude?: string[]
31
- }
32
-
33
- /* -------------------------------------------- */
34
- /* INTERAL USE */
35
- /* -------------------------------------------- */
36
-
37
- /**
38
- * **INTERNAL USE**
39
- *
40
- * Bundling Configuration
41
- */
42
- export type JSONBundle = Merge<JSONConfig, {
43
- /**
44
- * Paths to exclude from JSON processing
45
- */
46
- exclude: Tester;
47
- /**
48
- * The resolved cache path.
49
- */
50
- cache: string;
51
- }>;
@@ -1,254 +0,0 @@
1
- import { Tester } from 'anymatch';
2
- import { Merge } from 'type-fest';
3
- import { PageMetafield } from '../bundle/requests';
4
-
5
- /**
6
- * **Markdown > HTML**
7
- *
8
- * Syncify uses [markdown-it](https://github.com/markdown-it/markdown-it) when
9
- * converting markdown to HTML (export).
10
- *
11
- * **HTML > Markdown**
12
- *
13
- * Syncify uses [Turndown](https://github.com/mixmark-io/turndown) when
14
- * converting HTML to HTML (import).
15
- */
16
- export namespace Markdown {
17
- /**
18
- * Syncify uses [markdown-it](https://github.com/markdown-it/markdown-it) under
19
- * the hood for transforming markdown pages into HTML. The options provided here
20
- * will be passed onto markdown-it.
21
- */
22
- export interface Export {
23
- /**
24
- * Enable HTML tags in source, defaults to `true`
25
- */
26
- html: boolean;
27
- /**
28
- * // Use `/` to close single tags (<br />), defaults to `false`.
29
- * This is only for full CommonMark compatibility.
30
- */
31
- xhtmlOut: boolean;
32
- /**
33
- * Convert '\n' in paragraphs into `<br>`, defaults to `true`
34
- */
35
- breaks: boolean;
36
- /**
37
- * CSS language prefix for fenced blocks. Can be useful for external
38
- * highlighters, defaults to `language-`
39
- */
40
- langPrefix: string;
41
- /**
42
- * Autoconvert URL-like text to links, defaults to `false`
43
- */
44
- linkify: boolean;
45
-
46
- /**
47
- * Enable some language-neutral replacement + quotes beautification (defaults to `false`)
48
- * For the full list of replacements, see;
49
- * https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js
50
- */
51
- typographer: boolean;
52
- /**
53
- * Double + single quotes replacement pairs, when typographer enabled,
54
- * and smartquotes on. Could be either a String or an Array.
55
- * For example, you can use '«»„“' for Russian, '„“‚‘' for German,
56
- * and ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] for French (including nbsp).
57
- */
58
- quotes: string;
59
- }
60
-
61
- /**
62
- * Syncify uses [Turndown](https://github.com/mixmark-io/turndown) under
63
- * the hood to convert pages imported from stores into Markdown. The
64
- * `language` option **MUST** be set to `markdown`.
65
- */
66
- export interface Import {
67
- /**
68
- * Heading style for conversion. This defaults to `atx`.
69
- */
70
- headingStyle?: 'setext' | 'atx';
71
- /**
72
- * Horizontal Rules, defaults to `***`
73
- */
74
- hr?: '***' | '---' | '___';
75
- /**
76
- * Bullet list markers, defaults to `-`
77
- */
78
- bulletListMarker?: '-' | '+' | '*'
79
- /**
80
- * Code blocks, defaults to `fenced`
81
- */
82
- codeBlockStyle?: 'indented' | 'fenced';
83
- /**
84
- * EM Delimiter (ie: Italic), defaults to `_`
85
- */
86
- emDelimiter?: '_' | '*';
87
- /**
88
- * Code block fence style, defaults to ```
89
- */
90
- fence?: '```' | '~~~' | undefined;
91
- /**
92
- * Strong Delimiter (ie: bold), defaults to `**`
93
- */
94
- strongDelimiter?: '__' | '**' | undefined;
95
- /**
96
- * Link style, defaults to `inlined`
97
- *
98
- * _Don't fuck around with this and leave it as `inlined`_
99
- */
100
- linkStyle?: 'inlined' | 'referenced' | undefined;
101
- /**
102
- * Link style reference, defaults to `full`
103
- *
104
- * _Don't fuck around with this and leave it as `full`_
105
- */
106
- linkReferenceStyle?: 'full' | 'collapsed' | 'shortcut' | undefined;
107
- }
108
- }
109
-
110
- /**
111
- * Static Page publishing
112
- */
113
- export interface PagesConfig {
114
- /**
115
- * Whether the pulled page content should be written
116
- * as HTML or have the HTML converted to Markdown.
117
- *
118
- * @default 'html'
119
- */
120
- importLanguage?: 'markdown' | 'html',
121
- /**
122
- * Whether or not to use safe sync. When enabled, Syncify
123
- * will check remote sources before publishing. If local
124
- * sources have had edits applied, you will be prompted
125
- * before an overwrite takes place.
126
- *
127
- * @default true
128
- */
129
- safeSync?: boolean;
130
- /**
131
- * Fallback author name
132
- *
133
- * @default ''
134
- */
135
- author?: string;
136
- /**
137
- * Whether pages contained in sub-directories should
138
- * use their directory name as the `template_suffix`
139
- * when publishing to stores
140
- *
141
- * @default false
142
- */
143
- suffixDir?: boolean;
144
- /**
145
- * If `suffixDir` is `true` you can provide alist of page sub-directories
146
- * or relative files that should pass through without applying the directory
147
- * name as a `template_suffix` on the page.
148
- *
149
- * _cannot contain glob (`*`) stars_
150
- *
151
- * @default []
152
- *
153
- * @example
154
- *
155
- * // ✓ This is correct
156
- * { global: ['some-dir/filename.md' ] }
157
- *
158
- * // ✗ This is incorrect
159
- * { global: ['some-dir/*.md' ] }
160
- */
161
- global?: string[];
162
- }
163
-
164
- /* -------------------------------------------- */
165
- /* INTERNAL USE */
166
- /* -------------------------------------------- */
167
-
168
- /**
169
- * **Internal Use**
170
- *
171
- * Describes the frontmatter of a page file
172
- */
173
- export interface PageFrontmatter {
174
- /**
175
- * Page title
176
- */
177
- title?: string;
178
- /**
179
- * Page id reference
180
- */
181
- id?: number;
182
- /**
183
- * Page handle
184
- */
185
- handle?: string;
186
- /**
187
- * The template suffix
188
- */
189
- template?: string;
190
- /**
191
- * The template suffix (fallback if user passed explicit ref)
192
- */
193
- template_suffix?: string;
194
- /**
195
- * The author of the page
196
- */
197
- author?: string;
198
- /**
199
- * `markdown-it` option
200
- *
201
- * Whether or not HTML tags in source are enabled
202
- */
203
- html?: boolean;
204
- /**
205
- * Whether or not the page should be published
206
- */
207
- published?: boolean;
208
- /**
209
- * Write the following metafields to the page
210
- */
211
- metafields?: PageMetafield[]
212
- /**
213
- * Catches invalid reference
214
- */
215
- metafield?: PageMetafield[]
216
- /**
217
- * `markdown-it` option
218
- *
219
- * Applies `linkify` overwrite (Autoconvert URL-like text to links)
220
- */
221
- links?: boolean;
222
- /**
223
- * `markdown-it` option
224
- *
225
- * Applies `breaks` overwrite (Convert '\n' in paragraphs into `<br>`)
226
- */
227
- breaks?: boolean;
228
- }
229
-
230
- /**
231
- * **Internal Use**
232
- */
233
- export type PageBundle = Merge<PagesConfig, {
234
- /**
235
- * Import configuration for Turndown
236
- */
237
- import: Markdown.Import;
238
- /**
239
- * Export configuration for Markdown-it
240
- */
241
- export: Markdown.Export;
242
- /**
243
- * Whether or not `safe` is enabled
244
- */
245
- safeSync: boolean;
246
- /**
247
- * Global passthrough;
248
- */
249
- global: RegExp;
250
- /**
251
- * Anymatch pattern
252
- */
253
- paths?: Tester;
254
- }>