@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,676 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema",
3
- "$id": "syncify",
4
- "version": 1.1,
5
- "definitions": {
6
- "stores": {
7
- "type": "object",
8
- "required": ["domain", "themes"],
9
- "additionalProperties": false,
10
- "properties": {
11
- "domain": {
12
- "description": "Do not include the \"myshopify.com\" portion of the domain.",
13
- "type": "string",
14
- "pattern": "^[a-zA-Z0-9_-]+$"
15
- },
16
- "themes": {
17
- "description": "An object list of theme maps where the key properties represent a theme target names and their values the theme id.",
18
- "examples": [
19
- {
20
- "dev": 123456789
21
- }
22
- ],
23
- "type": "object",
24
- "propertyNames": {
25
- "pattern": "^[a-z0-9_$-]{1,15}$",
26
- "description": "Property keys will be used as target references by the CLI. The theme target name cannot contain spaces and cannot exceed 15 characters"
27
- }
28
- }
29
- }
30
- },
31
- "path-type": {
32
- "type": ["string", "array"],
33
- "oneOf": [
34
- {
35
- "type": "string",
36
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[!*a-zA-Z0-9_-]{1,}){1,}([.a-z]{1,})?$"
37
- },
38
- {
39
- "type": "array",
40
- "items": {
41
- "type": "string",
42
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[!*a-zA-Z0-9_-]{1,}){1,}([.a-z]{1,})?$"
43
- }
44
- }
45
- ]
46
- },
47
- "paths": {
48
- "type": "object",
49
- "additionalProperties": false,
50
- "description": "Customize the development theme structure of your project. You can create path maps to different locations within your project and Syncify will re-route them to the accepted theme structure imposed by Shopify. You cannot define reverse paths and globs must be relative to your root directory.\n\nAll paths must point to directories and files contained within the \"source\" directory defined. You can optionally omit the \"source\" entry from paths as Syncify will normalize and prepend that to all values defined.",
51
- "properties": {
52
- "assets": {
53
- "$ref": "#/definitions/path-type",
54
- "description": "Paths to files to be published to theme \"/assets\" directory. Accepts a glob (anymatch) pattern.",
55
- "default": "assets/**/*"
56
- },
57
- "config": {
58
- "$ref": "#/definitions/path-type",
59
- "description": "Paths to files to be published to the theme \"/config\" directory. These are typically the \"settings_schema.json\" and \"settings_data.json\" files.",
60
- "default": "config/*.json"
61
- },
62
- "locales": {
63
- "description": "Paths to files to be published to theme \"/locales\" directory. These are the translation files used by your store.",
64
- "$ref": "#/definitions/path-type",
65
- "default": "locales/*.json"
66
- },
67
- "layout": {
68
- "description": "Paths to files to be published to the theme \"/layout\" directory. These are Liquid template files.",
69
- "$ref": "#/definitions/path-type",
70
- "default": "layout/*.liquid"
71
- },
72
- "snippets": {
73
- "description": "Paths to files to be published to the theme \"/snippets\" directory. These are Liquid template files.",
74
- "$ref": "#/definitions/path-type",
75
- "default": "snippets/*.liquid"
76
- },
77
- "sections": {
78
- "description": "Paths to files to be published to the theme \"/sections\" directory. These are Liquid template files.\n\nYou can provide sub-directory references here and Syncify will re-path values. See the \"views.sections\" options to control how sections should be output.",
79
- "$ref": "#/definitions/path-type",
80
- "default": "sections/*.liquid"
81
- },
82
- "templates": {
83
- "description": "Paths to files to be published to the theme \"/templates\" directory.. These can be either JSON or Liquid template files.",
84
- "$ref": "#/definitions/path-type",
85
- "default": [
86
- "templates/*.json",
87
- "templates/*.liquid"
88
- ]
89
- },
90
- "customers": {
91
- "description": "Paths to files to be published to the theme \"/templates/customers\" directory. directory. These can be either JSON or Liquid template files.",
92
- "$ref": "#/definitions/path-type",
93
- "default": [
94
- "templates/customers/*.json",
95
- "templates/customers*.liquid"
96
- ]
97
- },
98
- "metafields": {
99
- "description": "The directory path to global shop metafields. Syncify provides a elegant approach to metafield synchronization using a directory > file based structure.",
100
- "$ref": "#/definitions/path-type",
101
- "default": "metafields/**/*.json"
102
- },
103
- "pages": {
104
- "description": "The directory path to markdown or html files. Shopify does not support Liquid code in Page body content. Syncify supports page body html content synchronization be written in markdown using frontmatter attribution.\n\nPlease note, page html content cannot contain or reference Liquid objects and/or tags, Shopify will omit or escape them if they are found present. Syncify will validate the contents of your markdown pages are warn you when Liquid syntax is encountered.",
105
- "$ref": "#/definitions/path-type",
106
- "default": ["pages/**/*.html", "pages/**/*.md"]
107
- },
108
- "redirects": {
109
- "description": "The directory path to redirect file, defaults to redirects.yml",
110
- "type": "string",
111
- "default": "redirects.yaml"
112
- }
113
- }
114
- },
115
- "spawn": {
116
- "type": "object",
117
- "additionalProperties": false,
118
- "description": "Spawned child processes to run in parallel with the Syncify resource instance. Supply the CLI command of the process to execute.\n\nYou can leverage Syncify utilities and environment variables to conditionally execute different builds, eg: production or development.",
119
- "properties": {
120
- "watch": {
121
- "type": "object",
122
- "description": "Supply the script commands you wish to spawn in watch mode. The \"key\" value will be used as the group reference in the CLI logs."
123
- },
124
- "build": {
125
- "type": "object",
126
- "description": "Supply the script commands you wish to spawn in build mode. Build mode will trigger spawns in resource modes such as \"upload\" and \"build\". The \"key\" value will be used as the group reference in the CLI logs.\n\nBuild spawns will execute only once."
127
- }
128
- }
129
- },
130
- "style": {
131
- "required": ["input"],
132
- "type": "object",
133
- "properties": {
134
- "input": {
135
- "default": "",
136
- "oneOf": [
137
- {
138
- "description": "Input path to a stylesheet, eg: \"styles/stylesheet.scss\". This is the root SCSS file from which @imports or @use is called. When changes are detected Syncify will trigger the build from this file. Any \"watch\" files referenced will trigger this file on rebuild.",
139
- "type": "string"
140
- },
141
- {
142
- "description": "List on input paths or glob patterns of stylesheets to process, for example:\n\n[\n\t\"styles/dir/*.scss\",\n\t\"styles/vendors/framework.css\"\n]\n\nIf you define \".scss\" or \".sass\" styles they will be processed with Dart SASS. If you have PostCSS installed and your project contains a \"postcss.config.js\" file then compiled \".scss\" and \".sass\" file contents will be passed to PostCSS.",
143
- "type": "array",
144
- "items": {
145
- "type": "string"
146
- }
147
- }
148
- ]
149
- },
150
- "rename": {
151
- "description": "Rename the stylesheet before uploading to theme assets.",
152
- "type": "string",
153
- "default": ""
154
- },
155
- "snippet": {
156
- "description": "Whether or not to output the contents of the stylesheet as a snippet. When \"true\" the transformed CSS will be wrapped in <style></style> tags and published to the theme \"snippets\" directory opposed to the theme \"assets\" directory.",
157
- "type": "boolean",
158
- "default": false
159
- },
160
- "watch": {
161
- "description": "Files and/or paths to watch. When changes are detected and paths match the defined entries within this option then the input file will be processed.\n\nPlease note that you do not need to include the input file within this configuration setting, Syncify will automatically apply this.",
162
- "type": "array",
163
- "default": [],
164
- "items": {
165
- "type": "string"
166
- }
167
- },
168
- "postcss": {
169
- "description": "Control PostCSS execution when bundling SASS/SCSS. If you setup PostCSS within your workspace then by default Syncify will pass your compiled SASS to PostCSS for post-processing. This might not always be ideal as larger stylesheets will take longer to transform as they will need to pass through both the Dart SASS and PostCSS compilers.\n\nYou can optionally execute PostCSS to run only when transforms are running in \"production\" mode.",
170
- "type": "boolean",
171
- "default": false
172
- },
173
- "sass": {
174
- "description": "For compiling SASS Syncify uses Dart SASS. You can inform Syncify to pass through additional options to the compilers instance, like (for example) disabling warnings.",
175
- "type": "object",
176
- "properties": {
177
- "sourcemap": {
178
- "description": "Whether or not to generate a source maps. Syncify stores source maps locally within your projects \"node_modules/.cache/.syncify\" directory.",
179
- "type": "boolean",
180
- "default": true
181
- },
182
- "style": {
183
- "description": "Inform Dart SASS on how you wish to compiled CSS to output. By default, this is set to \"compressed\" so as provide Shopify with the smallest file size when uploading and downloading from store/s.\n\nPlease note, you should use PostCSS for post-processing styles.",
184
- "type": "string",
185
- "default": "compressed",
186
- "oneOf": [
187
- {
188
- "enum": ["compressed"]
189
- },
190
- {
191
- "enum": ["expanded"]
192
- }
193
- ]
194
- },
195
- "warnings": {
196
- "type": "boolean",
197
- "default": true,
198
- "description": "Whether or not you wish to disable warnings printed by Dart SASS. By default, this is set to \"true\" so warnings will be printed. When \"false\" Syncify will omit warnings from Dart SASS."
199
- },
200
- "includePaths": {
201
- "description": "Define a list of include paths. These will be passed to SASS and are useful when you want to include \"node_modules\" within @import references. You will need to prefex import paths with ~ character to inform Syncify to resolve imports from \"node_modules\" directory.",
202
- "type": "array",
203
- "default": ["node_modules"],
204
- "items": {
205
- "type": "string"
206
- }
207
- }
208
- }
209
- }
210
- }
211
- },
212
- "json": {
213
- "type": "object",
214
- "additionalProperties": false,
215
- "properties": {
216
- "indent": {
217
- "type": "number",
218
- "maximum": 5,
219
- "minimum": 1,
220
- "default": 2,
221
- "description": "The level of indentation to be applied to JSON files"
222
- },
223
- "useTab": {
224
- "type": "boolean",
225
- "default": false,
226
- "description": "Whether to use `\t` identation characters."
227
- },
228
- "crlf": {
229
- "type": "boolean",
230
- "default": false,
231
- "description": "If line termination should be Windows (CRLF) format. Unix (LF) format is the default."
232
- },
233
- "exclude": {
234
- "type": "array",
235
- "default": [],
236
- "description": "An optional string list of paths/filenames to exclude from processing, ie: pass through",
237
- "items": {
238
- "type": "string"
239
- }
240
- }
241
- }
242
- },
243
- "svg": {
244
- "type": "object",
245
- "additionalProperties": false,
246
- "required": ["input"],
247
- "properties": {
248
- "input": {
249
- "description": "Path to SVG files",
250
- "default": "",
251
- "oneOf": [
252
- {
253
- "type": "string"
254
- },
255
- {
256
- "type": "array",
257
- "items": {
258
- "type": "string"
259
- }
260
- }
261
- ]
262
- },
263
- "rename": {
264
- "type": "string",
265
- "description": "Rename the svg file - The same name as source file will be used undefined.",
266
- "default": ""
267
- },
268
- "snippet": {
269
- "type": "boolean",
270
- "description": "Whether to generate svg as snippet or asset. When `true` the svg source will be written as a snippet",
271
- "default": false
272
- },
273
- "svgo": {
274
- "type": "boolean",
275
- "default": true,
276
- "description": "Options to be passed to `svgo` - Requires `svgo` to be installed."
277
- },
278
- "sprite": {
279
- "type": "object",
280
- "additionalProperties": false,
281
- "default": {},
282
- "description": "Syncify exposes only a couple of options when generating SVG Sprites. These options are passed to \"svg-sprites\".",
283
- "properties": {
284
- "namespaceIDS": {
285
- "type": "boolean",
286
- "default": false,
287
- "description": "In order to avoid ID clashes, the default behavior is to namespace all IDs in the source SVGs before compiling them into a sprite. Each ID is prepended with a unique string."
288
- },
289
- "dimensionAttributes": {
290
- "type": "boolean",
291
- "default": true,
292
- "description": "If truthy, width and height attributes will be set on the sprite's element (where applicable)."
293
- },
294
- "rootAttributes": {
295
- "type": "object",
296
- "default": {},
297
- "description": "Shorthand for applying custom attributes to the outermost element. Please be aware that certain attributes (e.g. viewBox) will be calculated dynamically and override custom rootAttributes in any case."
298
- },
299
- "namespaceClassnames": {
300
- "type": "boolean",
301
- "default": false,
302
- "description": "In order to avoid CSS class name ambiguities, the default behavior is to namespace CSS class names in the source SVGs before compiling them into a sprite. Each class name is prepended with a unique string. Disable this option to keep the class names untouched."
303
- }
304
- }
305
- }
306
- }
307
- },
308
- "views": {
309
- "type": "object",
310
- "additionalProperties": false,
311
- "description": "Transform options for Liquid/HTML files",
312
- "properties": {
313
- "sections": {
314
- "type": "object",
315
- "additionalProperties": false,
316
- "description": "Section specific transform options when processing section theme files.",
317
- "properties": {
318
- "prefixDir": {
319
- "type": "boolean",
320
- "default": false,
321
- "description": "Sections can be structured within sub-directories. If a section file is determined to be deeply nested in such a way then this option will enable parent directory name prefixing to be applied the filenames. For example,\n\nIf a section path is \"theme/sections/index/some-file.liquid\" then the filename will be prefixed with \"index\" so when referencing it within themes you'd need to use \"index_some-file.liquid\"\n\nPrefixing is helpful when you have a large number of sections and want to avoid name collusions. You can only control what sub-directories should have prefexing applied using the \"global:[]\" option or alternatively do not reference paths to sections which contain sub directories."
322
- },
323
- "separator": {
324
- "type": "string",
325
- "default": "-",
326
- "description": "Define a separator character to be used for prefixing",
327
- "oneOf": [
328
- {
329
- "enum": ["-"]
330
- },
331
- {
332
- "enum": ["_"]
333
- },
334
- {
335
- "enum": [":"]
336
- },
337
- {
338
- "enum": ["@"]
339
- }
340
- ]
341
- },
342
- "globals": {
343
- "description": "Glob path to files to section directories that should skip prefixing when a sub-directory structure is detected.",
344
- "type": "array",
345
- "items": {
346
- "type": "string"
347
- }
348
- }
349
- }
350
- },
351
- "pages": {
352
- "type": "object",
353
- "additionalProperties": false,
354
- "properties": {
355
- "language": {
356
- "type": "string",
357
- "oneOf": [
358
- {
359
- "enum": ["all"]
360
- },
361
- {
362
- "enum": ["html"]
363
- },
364
- {
365
- "enum": ["markdown"]
366
- }
367
- ]
368
- },
369
- "suffixDir": {
370
- "type": "boolean",
371
- "default": false
372
- },
373
- "author": {
374
- "description": "Fallback author",
375
- "type": "string",
376
- "default": ""
377
- },
378
- "globals": {
379
- "description": "Glob path to files to section directories that should skip prefixing when a sub-directory structure is detected.",
380
- "type": "array",
381
- "items": {
382
- "type": "string"
383
- }
384
- }
385
- }
386
- },
387
- "snippets": {
388
- "type": "object",
389
- "additionalProperties": false,
390
- "description": "Snippet specific transform options when processing snippet files",
391
- "properties": {
392
- "prefixDir": {
393
- "type": "boolean",
394
- "default": false
395
- },
396
- "separator": {
397
- "type": "string",
398
- "default": "-",
399
- "description": "Define a separator character to be used for prefixing",
400
- "oneOf": [
401
- {
402
- "enum": ["-"]
403
- },
404
- {
405
- "enum": ["_"]
406
- },
407
- {
408
- "enum": [":"]
409
- },
410
- {
411
- "enum": ["@"]
412
- }
413
- ]
414
- },
415
- "globals": {
416
- "description": "Glob path to files to snippet directories that should skip prefixing when a sub-directory structure is detected.",
417
- "type": "array",
418
- "items": {
419
- "type": "string"
420
- }
421
- }
422
- }
423
- }
424
- }
425
- },
426
- "minify": {
427
- "type": "object",
428
- "description": "Minification options to be applied to Liquid/HTML files.",
429
- "properties": {
430
- "json": {
431
- "type": "object",
432
- "properties": {
433
- "assets": {
434
- "description": "Minify `.json` files writing to `theme/assets`",
435
- "type": "boolean",
436
- "default": true
437
- },
438
- "config": {
439
- "description": "Minify `settings_schema.json` and `setting_data.json` config files.",
440
- "type": "boolean",
441
- "default": true
442
- },
443
- "locales": {
444
- "description": "Minify locale JSON files.",
445
- "type": "boolean",
446
- "default": true
447
- },
448
- "metafields": {
449
- "description": "Minify metafield files.",
450
- "type": "boolean",
451
- "default": true
452
- },
453
- "templates": {
454
- "description": "Minify template JSON files.",
455
- "type": "boolean",
456
- "default": true
457
- },
458
- "exclude": {
459
- "type": "array",
460
- "items": {
461
- "type": "string"
462
- }
463
- }
464
- }
465
- },
466
- "liquid": {
467
- "type": "object",
468
- "properties": {
469
- "minifySchemaTag": {
470
- "type": "boolean",
471
- "default": true,
472
- "description": "Whether JSON section schema tag contents should be minified."
473
- },
474
- "removeNewlineAttributes": {
475
- "type": "boolean",
476
- "default": true,
477
- "description": "Whether or not to remove newlines contained within attributes. This is specifically helpful when you a expressing Liquid in HTML attributes that spans newlines."
478
- },
479
- "removeWhitespaceDashes": {
480
- "type": "boolean",
481
- "default": false,
482
- "description": "Whether or not to remove redundant whitespace dashes from Liquid tags when proceeding characters are not whitespace values."
483
- },
484
- "removeComments": {
485
- "type": "boolean",
486
- "default": false,
487
- "description": "Whether or not to remove Liquid comments"
488
- },
489
- "ignoreTags": {
490
- "description": "A list of Liquid tags to be ignored from minification",
491
- "type": "array",
492
- "items": {
493
- "type": "string"
494
- }
495
- },
496
- "ignoreObjects": {
497
- "description": "A list of Liquid objects to be ignored from minification",
498
- "type": "array",
499
- "items": {
500
- "type": "string"
501
- }
502
- },
503
- "exclude": {
504
- "type": "array",
505
- "items": {
506
- "type": "string"
507
- }
508
- }
509
- }
510
- },
511
- "html": {
512
- "type": "object",
513
- "properties": {
514
- "removeComments": {
515
- "type": "boolean",
516
- "default": true,
517
- "description": "Whether or not to remove HTML comments"
518
- },
519
- "collapseWhitespace": {
520
- "type": "boolean",
521
- "default": true,
522
- "description": "Should whitespace be collapsed"
523
- },
524
- "trimCustomFragments": {
525
- "type": "boolean",
526
- "default": true
527
- },
528
- "caseSensitive": {
529
- "type": "boolean",
530
- "description": "Treat attributes in case sensitive manner (useful for custom HTML tags)",
531
- "default": false
532
- },
533
- "omitBooleanValues": {
534
- "type": "boolean",
535
- "description": "Omit attribute values from boolean attributes",
536
- "default": false
537
- },
538
- "keepClosingSlash": {
539
- "type": "boolean",
540
- "description": "Keep the trailing slash on singleton elements",
541
- "default": false
542
- },
543
- "ignoreCustomFragments": {
544
- "description": "A regular expression list of HTML fragments to ignore. Please keep in mind that the expressions will be converted using new RegExp() method so ensure to escape character where necessary.",
545
- "type": "array",
546
- "items": {
547
- "type": "string"
548
- }
549
- },
550
- "sortAttributes": {
551
- "type": "boolean",
552
- "description": "Sort attributes by frequency",
553
- "default": false
554
- },
555
- "exclude": {
556
- "type": "array",
557
- "items": {
558
- "type": "string"
559
- }
560
- }
561
- }
562
- }
563
- }
564
- }
565
- },
566
-
567
- "type": "object",
568
- "description": "Syncify Configuration options for Shopify theme development.",
569
- "required": ["stores"],
570
- "additionalProperties": false,
571
- "properties": {
572
- "input": {
573
- "type": "string",
574
- "default": "source",
575
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[a-zA-Z0-9_-]{1,}){0,}$",
576
- "description": "The source build path is the directory where theme files exist. Syncify defaults this to \"source\". The value defined here will be prepended to any path you define within \"paths\"."
577
- },
578
- "output": {
579
- "type": "string",
580
- "default": "theme",
581
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[a-zA-Z0-9_-]{1,}){0,}$",
582
- "description": "The output build path is the directory where transformed theme files will be written. This is typically called \"dist\" in most projects but Syncify defaults this to \"theme\". The output directory will reflect the theme files synced with your store online."
583
- },
584
- "import": {
585
- "type": "string",
586
- "default": "import",
587
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[a-zA-Z0-9_-]{1,}){0,}$",
588
- "description": "The import build path is the directory where downloaded themes and files will be written. It is relative to your projects root directory and only used in the download mode."
589
- },
590
- "export": {
591
- "type": "string",
592
- "default": "export",
593
- "pattern": "^[a-zA-Z0-9_-]{1,}(\\/[a-zA-Z0-9_-]{1,}){0,}$",
594
- "description": "The export path is where packaged (.zip) themes will be written when running the \"package\" resource. Packaged themes will be prepended with the version number defined in your \"package.json\" file and are exported as \".zip\" files."
595
- },
596
- "config": {
597
- "type": "string",
598
- "default": ".",
599
- "pattern": "^(\\.|[a-zA-Z0-9_-]{1,}(\\/[a-zA-Z0-9_-]{1,}){0,})$",
600
- "description": "Syncify will look for configuration files in the root of your project but this might not always be ideal as it can create clutter in your workspace. You can optionally place these config files within a sub-directory (relative to root) and Syncify will look for any spawned of config files from within this directory (opposed to root). \n\nTypically this is named \"scripts\" in most node projects, you can place config files like you \"rollup.config.js\" or \"postcss.config.js\" files within."
601
- },
602
- "paths": {
603
- "$ref": "#/definitions/paths"
604
- },
605
- "stores": {
606
- "description": "List of Shopify stores to connect",
607
- "oneOf": [
608
- {
609
- "type": "array",
610
- "items": {
611
- "$ref": "#/definitions/stores"
612
- }
613
- },
614
- {
615
- "type": "object",
616
- "$ref": "#/definitions/stores"
617
- }
618
- ],
619
- "$ref": "#/definitions/stores"
620
- },
621
- "spawn": {
622
- "$ref": "#/definitions/spawn"
623
- },
624
- "views": {
625
- "$ref": "#/definitions/views"
626
- },
627
- "transforms": {
628
- "description": "Transform configuration options for processing in the asset and file pipeline.",
629
- "type": "object",
630
- "additionalProperties": false,
631
- "properties": {
632
- "json": {
633
- "description": "Transform options for handling \".json\" files. The configuration options you define here will be applied to all JSON file types intercepted by Syncify.",
634
- "$ref": "#/definitions/json"
635
- },
636
- "style": {
637
- "description": "A list of SCSS or SASS stylesheets to transform. Files will be processed with \"Dart SASS\" and compiled contents will be passed to PostCSS for post-processing if you have PostCSS installed and your project contains a \"postcss.config.js\" file.\n\nYou can also define \".css\" files to be processed in accordance.",
638
- "oneOf": [
639
- {
640
- "type": "object",
641
- "$ref": "#/definitions/style"
642
- },
643
- {
644
- "type": "array",
645
- "items": {
646
- "$ref": "#/definitions/style"
647
- }
648
- }
649
- ]
650
- },
651
- "svg": {
652
- "description": "Transform options for \".svg\" files. Generate an svg sprite or svg snippet files.",
653
- "oneOf": [
654
- {
655
- "type": "object",
656
- "$ref": "#/definitions/svg"
657
- },
658
- {
659
- "type": "array",
660
- "items": {
661
- "$ref": "#/definitions/svg"
662
- }
663
- }
664
- ]
665
- },
666
- "script": {
667
- "type": "object"
668
- }
669
- }
670
- },
671
-
672
- "minify": {
673
- "$ref": "#/definitions/minify"
674
- }
675
- }
676
- }