@wp-playground/blueprints 0.3.1 → 0.5.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.
@@ -9,6 +9,10 @@
9
9
  "type": "string",
10
10
  "description": "The URL to navigate to after the blueprint has been run."
11
11
  },
12
+ "description": {
13
+ "type": "string",
14
+ "description": "Optional description. It doesn't do anything but is exposed as a courtesy to developers who may want to document which blueprint file does what."
15
+ },
12
16
  "preferredVersions": {
13
17
  "type": "object",
14
18
  "properties": {
@@ -33,6 +37,74 @@
33
37
  "additionalProperties": false,
34
38
  "description": "The preferred PHP and WordPress versions to use."
35
39
  },
40
+ "features": {
41
+ "type": "object",
42
+ "properties": {
43
+ "networking": {
44
+ "type": "boolean",
45
+ "description": "Should boot with support for network request via wp_safe_remote_get?"
46
+ }
47
+ },
48
+ "additionalProperties": false
49
+ },
50
+ "constants": {
51
+ "type": "object",
52
+ "additionalProperties": {
53
+ "type": "string"
54
+ },
55
+ "description": "PHP Constants to define on every request",
56
+ "deprecated": "This experimental option will change without warning.\nUse `steps` instead."
57
+ },
58
+ "plugins": {
59
+ "type": "array",
60
+ "items": {
61
+ "anyOf": [
62
+ {
63
+ "type": "string"
64
+ },
65
+ {
66
+ "$ref": "#/definitions/FileReference"
67
+ }
68
+ ]
69
+ },
70
+ "description": "WordPress plugins to install and activate",
71
+ "deprecated": "This experimental option will change without warning.\nUse `steps` instead."
72
+ },
73
+ "siteOptions": {
74
+ "type": "object",
75
+ "additionalProperties": {
76
+ "type": "string"
77
+ },
78
+ "properties": {
79
+ "blogname": {
80
+ "type": "string",
81
+ "description": "The site title"
82
+ }
83
+ },
84
+ "description": "WordPress site options to define",
85
+ "deprecated": "This experimental option will change without warning.\nUse `steps` instead."
86
+ },
87
+ "login": {
88
+ "anyOf": [
89
+ {
90
+ "type": "boolean"
91
+ },
92
+ {
93
+ "type": "object",
94
+ "properties": {
95
+ "username": {
96
+ "type": "string"
97
+ },
98
+ "password": {
99
+ "type": "string"
100
+ }
101
+ },
102
+ "required": ["username", "password"],
103
+ "additionalProperties": false
104
+ }
105
+ ],
106
+ "description": "User to log in as. If true, logs the user in as admin/password."
107
+ },
36
108
  "phpExtensionBundles": {
37
109
  "type": "array",
38
110
  "items": {
@@ -62,7 +134,7 @@
62
134
  }
63
135
  ]
64
136
  },
65
- "description": "The steps to run."
137
+ "description": "The steps to run after every other operation in this Blueprint was executed."
66
138
  },
67
139
  "$schema": {
68
140
  "type": "string"
@@ -73,6 +145,7 @@
73
145
  "SupportedPHPVersion": {
74
146
  "type": "string",
75
147
  "enum": [
148
+ "8.3",
76
149
  "8.2",
77
150
  "8.1",
78
151
  "8.0",
@@ -80,10 +153,157 @@
80
153
  "7.3",
81
154
  "7.2",
82
155
  "7.1",
83
- "7.0",
84
- "5.6"
156
+ "7.0"
85
157
  ]
86
158
  },
159
+ "FileReference": {
160
+ "anyOf": [
161
+ {
162
+ "$ref": "#/definitions/VFSReference"
163
+ },
164
+ {
165
+ "$ref": "#/definitions/LiteralReference"
166
+ },
167
+ {
168
+ "$ref": "#/definitions/CoreThemeReference"
169
+ },
170
+ {
171
+ "$ref": "#/definitions/CorePluginReference"
172
+ },
173
+ {
174
+ "$ref": "#/definitions/UrlReference"
175
+ }
176
+ ]
177
+ },
178
+ "VFSReference": {
179
+ "type": "object",
180
+ "properties": {
181
+ "resource": {
182
+ "type": "string",
183
+ "const": "vfs",
184
+ "description": "Identifies the file resource as Virtual File System (VFS)"
185
+ },
186
+ "path": {
187
+ "type": "string",
188
+ "description": "The path to the file in the VFS"
189
+ }
190
+ },
191
+ "required": ["resource", "path"],
192
+ "additionalProperties": false
193
+ },
194
+ "LiteralReference": {
195
+ "type": "object",
196
+ "properties": {
197
+ "resource": {
198
+ "type": "string",
199
+ "const": "literal",
200
+ "description": "Identifies the file resource as a literal file"
201
+ },
202
+ "name": {
203
+ "type": "string",
204
+ "description": "The name of the file"
205
+ },
206
+ "contents": {
207
+ "anyOf": [
208
+ {
209
+ "type": "string"
210
+ },
211
+ {
212
+ "type": "object",
213
+ "properties": {
214
+ "BYTES_PER_ELEMENT": {
215
+ "type": "number"
216
+ },
217
+ "buffer": {
218
+ "type": "object",
219
+ "properties": {
220
+ "byteLength": {
221
+ "type": "number"
222
+ }
223
+ },
224
+ "required": ["byteLength"],
225
+ "additionalProperties": false
226
+ },
227
+ "byteLength": {
228
+ "type": "number"
229
+ },
230
+ "byteOffset": {
231
+ "type": "number"
232
+ },
233
+ "length": {
234
+ "type": "number"
235
+ }
236
+ },
237
+ "required": [
238
+ "BYTES_PER_ELEMENT",
239
+ "buffer",
240
+ "byteLength",
241
+ "byteOffset",
242
+ "length"
243
+ ],
244
+ "additionalProperties": {
245
+ "type": "number"
246
+ }
247
+ }
248
+ ],
249
+ "description": "The contents of the file"
250
+ }
251
+ },
252
+ "required": ["resource", "name", "contents"],
253
+ "additionalProperties": false
254
+ },
255
+ "CoreThemeReference": {
256
+ "type": "object",
257
+ "properties": {
258
+ "resource": {
259
+ "type": "string",
260
+ "const": "wordpress.org/themes",
261
+ "description": "Identifies the file resource as a WordPress Core theme"
262
+ },
263
+ "slug": {
264
+ "type": "string",
265
+ "description": "The slug of the WordPress Core theme"
266
+ }
267
+ },
268
+ "required": ["resource", "slug"],
269
+ "additionalProperties": false
270
+ },
271
+ "CorePluginReference": {
272
+ "type": "object",
273
+ "properties": {
274
+ "resource": {
275
+ "type": "string",
276
+ "const": "wordpress.org/plugins",
277
+ "description": "Identifies the file resource as a WordPress Core plugin"
278
+ },
279
+ "slug": {
280
+ "type": "string",
281
+ "description": "The slug of the WordPress Core plugin"
282
+ }
283
+ },
284
+ "required": ["resource", "slug"],
285
+ "additionalProperties": false
286
+ },
287
+ "UrlReference": {
288
+ "type": "object",
289
+ "properties": {
290
+ "resource": {
291
+ "type": "string",
292
+ "const": "url",
293
+ "description": "Identifies the file resource as a URL"
294
+ },
295
+ "url": {
296
+ "type": "string",
297
+ "description": "The URL of the file"
298
+ },
299
+ "caption": {
300
+ "type": "string",
301
+ "description": "Optional caption for displaying a progress message"
302
+ }
303
+ },
304
+ "required": ["resource", "url"],
305
+ "additionalProperties": false
306
+ },
87
307
  "SupportedPHPExtensionBundle": {
88
308
  "type": "string",
89
309
  "const": "kitchen-sink"
@@ -196,6 +416,9 @@
196
416
  },
197
417
  "prepareForRunningInsideWebBrowser": {
198
418
  "type": "boolean"
419
+ },
420
+ "addFetchNetworkTransport": {
421
+ "type": "boolean"
199
422
  }
200
423
  },
201
424
  "required": ["step"]
@@ -258,8 +481,7 @@
258
481
  },
259
482
  "virtualize": {
260
483
  "type": "boolean",
261
- "description": "Enables the virtualization of wp-config.php and playground-consts.json files, leaving the local system files untouched. The variables defined in the /vfs-blueprints/playground-consts.json file are loaded via the auto_prepend_file directive in the php.ini file.",
262
- "default": false
484
+ "deprecated": "This option is noop and will be removed in a future version.\nThis option is only kept in here to avoid breaking Blueprint schema validation\nfor existing apps using this option."
263
485
  }
264
486
  },
265
487
  "required": ["consts", "step"]
@@ -318,6 +540,37 @@
318
540
  },
319
541
  "required": ["file", "step"]
320
542
  },
543
+ {
544
+ "type": "object",
545
+ "additionalProperties": false,
546
+ "properties": {
547
+ "progress": {
548
+ "type": "object",
549
+ "properties": {
550
+ "weight": {
551
+ "type": "number"
552
+ },
553
+ "caption": {
554
+ "type": "string"
555
+ }
556
+ },
557
+ "additionalProperties": false
558
+ },
559
+ "step": {
560
+ "type": "string",
561
+ "const": "importWordPressFiles"
562
+ },
563
+ "wordPressFilesZip": {
564
+ "$ref": "#/definitions/FileReference",
565
+ "description": "The zip file containing the top-level WordPress files and directories."
566
+ },
567
+ "pathInZip": {
568
+ "type": "string",
569
+ "description": "The path inside the zip file where the WordPress files are."
570
+ }
571
+ },
572
+ "required": ["step", "wordPressFilesZip"]
573
+ },
321
574
  {
322
575
  "type": "object",
323
576
  "additionalProperties": false,
@@ -523,14 +776,14 @@
523
776
  },
524
777
  "step": {
525
778
  "type": "string",
526
- "const": "replaceSite"
779
+ "const": "rm"
527
780
  },
528
- "fullSiteZip": {
529
- "$ref": "#/definitions/FileReference",
530
- "description": "The zip file containing the new WordPress site"
781
+ "path": {
782
+ "type": "string",
783
+ "description": "The path to remove"
531
784
  }
532
785
  },
533
- "required": ["fullSiteZip", "step"]
786
+ "required": ["path", "step"]
534
787
  },
535
788
  {
536
789
  "type": "object",
@@ -550,7 +803,7 @@
550
803
  },
551
804
  "step": {
552
805
  "type": "string",
553
- "const": "rm"
806
+ "const": "rmdir"
554
807
  },
555
808
  "path": {
556
809
  "type": "string",
@@ -577,14 +830,15 @@
577
830
  },
578
831
  "step": {
579
832
  "type": "string",
580
- "const": "rmdir"
833
+ "const": "runPHP",
834
+ "description": "The step identifier."
581
835
  },
582
- "path": {
836
+ "code": {
583
837
  "type": "string",
584
- "description": "The path to remove"
838
+ "description": "The PHP code to run."
585
839
  }
586
840
  },
587
- "required": ["path", "step"]
841
+ "required": ["code", "step"]
588
842
  },
589
843
  {
590
844
  "type": "object",
@@ -604,15 +858,14 @@
604
858
  },
605
859
  "step": {
606
860
  "type": "string",
607
- "const": "runPHP",
608
- "description": "The step identifier."
861
+ "const": "runPHPWithOptions"
609
862
  },
610
- "code": {
611
- "type": "string",
612
- "description": "The PHP code to run."
863
+ "options": {
864
+ "$ref": "#/definitions/PHPRunOptions",
865
+ "description": "Run options (See /wordpress-playground/api/universal/interface/PHPRunOptions)"
613
866
  }
614
867
  },
615
- "required": ["code", "step"]
868
+ "required": ["options", "step"]
616
869
  },
617
870
  {
618
871
  "type": "object",
@@ -632,11 +885,10 @@
632
885
  },
633
886
  "step": {
634
887
  "type": "string",
635
- "const": "runPHPWithOptions"
888
+ "const": "runWpInstallationWizard"
636
889
  },
637
890
  "options": {
638
- "$ref": "#/definitions/PHPRunOptions",
639
- "description": "Run options (See /wordpress-playground/api/universal/interface/PHPRunOptions)"
891
+ "$ref": "#/definitions/WordPressInstallationOptions"
640
892
  }
641
893
  },
642
894
  "required": ["options", "step"]
@@ -659,13 +911,15 @@
659
911
  },
660
912
  "step": {
661
913
  "type": "string",
662
- "const": "runWpInstallationWizard"
914
+ "const": "runSql",
915
+ "description": "The step identifier."
663
916
  },
664
- "options": {
665
- "$ref": "#/definitions/WordPressInstallationOptions"
917
+ "sql": {
918
+ "$ref": "#/definitions/FileReference",
919
+ "description": "The SQL to run. Each non-empty line must contain a valid SQL query."
666
920
  }
667
921
  },
668
- "required": ["options", "step"]
922
+ "required": ["sql", "step"]
669
923
  },
670
924
  {
671
925
  "type": "object",
@@ -867,154 +1121,6 @@
867
1121
  }
868
1122
  ]
869
1123
  },
870
- "FileReference": {
871
- "anyOf": [
872
- {
873
- "$ref": "#/definitions/VFSReference"
874
- },
875
- {
876
- "$ref": "#/definitions/LiteralReference"
877
- },
878
- {
879
- "$ref": "#/definitions/CoreThemeReference"
880
- },
881
- {
882
- "$ref": "#/definitions/CorePluginReference"
883
- },
884
- {
885
- "$ref": "#/definitions/UrlReference"
886
- }
887
- ]
888
- },
889
- "VFSReference": {
890
- "type": "object",
891
- "properties": {
892
- "resource": {
893
- "type": "string",
894
- "const": "vfs",
895
- "description": "Identifies the file resource as Virtual File System (VFS)"
896
- },
897
- "path": {
898
- "type": "string",
899
- "description": "The path to the file in the VFS"
900
- }
901
- },
902
- "required": ["resource", "path"],
903
- "additionalProperties": false
904
- },
905
- "LiteralReference": {
906
- "type": "object",
907
- "properties": {
908
- "resource": {
909
- "type": "string",
910
- "const": "literal",
911
- "description": "Identifies the file resource as a literal file"
912
- },
913
- "name": {
914
- "type": "string",
915
- "description": "The name of the file"
916
- },
917
- "contents": {
918
- "anyOf": [
919
- {
920
- "type": "string"
921
- },
922
- {
923
- "type": "object",
924
- "properties": {
925
- "BYTES_PER_ELEMENT": {
926
- "type": "number"
927
- },
928
- "buffer": {
929
- "type": "object",
930
- "properties": {
931
- "byteLength": {
932
- "type": "number"
933
- }
934
- },
935
- "required": ["byteLength"],
936
- "additionalProperties": false
937
- },
938
- "byteLength": {
939
- "type": "number"
940
- },
941
- "byteOffset": {
942
- "type": "number"
943
- },
944
- "length": {
945
- "type": "number"
946
- }
947
- },
948
- "required": [
949
- "BYTES_PER_ELEMENT",
950
- "buffer",
951
- "byteLength",
952
- "byteOffset",
953
- "length"
954
- ],
955
- "additionalProperties": {
956
- "type": "number"
957
- }
958
- }
959
- ],
960
- "description": "The contents of the file"
961
- }
962
- },
963
- "required": ["resource", "name", "contents"],
964
- "additionalProperties": false
965
- },
966
- "CoreThemeReference": {
967
- "type": "object",
968
- "properties": {
969
- "resource": {
970
- "type": "string",
971
- "const": "wordpress.org/themes",
972
- "description": "Identifies the file resource as a WordPress Core theme"
973
- },
974
- "slug": {
975
- "type": "string",
976
- "description": "The slug of the WordPress Core theme"
977
- }
978
- },
979
- "required": ["resource", "slug"],
980
- "additionalProperties": false
981
- },
982
- "CorePluginReference": {
983
- "type": "object",
984
- "properties": {
985
- "resource": {
986
- "type": "string",
987
- "const": "wordpress.org/plugins",
988
- "description": "Identifies the file resource as a WordPress Core plugin"
989
- },
990
- "slug": {
991
- "type": "string",
992
- "description": "The slug of the WordPress Core plugin"
993
- }
994
- },
995
- "required": ["resource", "slug"],
996
- "additionalProperties": false
997
- },
998
- "UrlReference": {
999
- "type": "object",
1000
- "properties": {
1001
- "resource": {
1002
- "type": "string",
1003
- "const": "url",
1004
- "description": "Identifies the file resource as a URL"
1005
- },
1006
- "url": {
1007
- "type": "string",
1008
- "description": "The URL of the file"
1009
- },
1010
- "caption": {
1011
- "type": "string",
1012
- "description": "Optional caption for displaying a progress message"
1013
- }
1014
- },
1015
- "required": ["resource", "url"],
1016
- "additionalProperties": false
1017
- },
1018
1124
  "InstallPluginOptions": {
1019
1125
  "type": "object",
1020
1126
  "properties": {