godot-export-presets 0.1.0

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.cjs ADDED
@@ -0,0 +1,1403 @@
1
+ 'use strict';
2
+
3
+ var promises = require('fs/promises');
4
+
5
+ // src/parser.ts
6
+ var ParseError = class extends Error {
7
+ constructor(message, line) {
8
+ super(`Parse error at line ${line}: ${message}`);
9
+ this.line = line;
10
+ this.name = "ParseError";
11
+ }
12
+ };
13
+ var Stream = class {
14
+ constructor(content) {
15
+ this.content = content;
16
+ }
17
+ pos = 0;
18
+ line = 1;
19
+ saved = null;
20
+ get_char() {
21
+ if (this.saved !== null) {
22
+ const c2 = this.saved;
23
+ this.saved = null;
24
+ return c2;
25
+ }
26
+ if (this.pos >= this.content.length) {
27
+ return "\0";
28
+ }
29
+ const c = this.content[this.pos++];
30
+ if (c === "\n") {
31
+ this.line++;
32
+ }
33
+ return c;
34
+ }
35
+ peek_char() {
36
+ if (this.pos >= this.content.length) {
37
+ return "\0";
38
+ }
39
+ return this.content[this.pos];
40
+ }
41
+ save_char(c) {
42
+ this.saved = c;
43
+ }
44
+ is_eof() {
45
+ return this.pos >= this.content.length && this.saved === null;
46
+ }
47
+ get_line() {
48
+ return this.line;
49
+ }
50
+ };
51
+ function is_whitespace(c) {
52
+ return c === " " || c === " " || c === "\r" || c === "\n";
53
+ }
54
+ function is_digit(c) {
55
+ return c >= "0" && c <= "9";
56
+ }
57
+ function is_alpha(c) {
58
+ return c >= "a" && c <= "z" || c >= "A" && c <= "Z" || c === "_";
59
+ }
60
+ function is_alnum(c) {
61
+ return is_alpha(c) || is_digit(c);
62
+ }
63
+ function is_identifier_char(c) {
64
+ return is_alnum(c) || c === "/" || c === "." || c === "_" || c === "-";
65
+ }
66
+ function get_token(stream) {
67
+ while (true) {
68
+ const c2 = stream.peek_char();
69
+ if (is_whitespace(c2)) {
70
+ stream.get_char();
71
+ continue;
72
+ }
73
+ break;
74
+ }
75
+ const line = stream.get_line();
76
+ const c = stream.get_char();
77
+ if (c === "\0") {
78
+ return { type: "EOF", value: "", line };
79
+ }
80
+ switch (c) {
81
+ case "[":
82
+ return { type: "BRACKET_OPEN", value: c, line };
83
+ case "]":
84
+ return { type: "BRACKET_CLOSE", value: c, line };
85
+ case "(":
86
+ return { type: "PARENTHESIS_OPEN", value: c, line };
87
+ case ")":
88
+ return { type: "PARENTHESIS_CLOSE", value: c, line };
89
+ case "=":
90
+ return { type: "EQUAL", value: c, line };
91
+ case ",":
92
+ return { type: "COMMA", value: c, line };
93
+ case ";":
94
+ while (true) {
95
+ const ch = stream.get_char();
96
+ if (ch === "\n" || ch === "\0") {
97
+ break;
98
+ }
99
+ }
100
+ return get_token(stream);
101
+ // Get next token after comment
102
+ case "#":
103
+ while (true) {
104
+ const ch = stream.get_char();
105
+ if (ch === "\n" || ch === "\0") {
106
+ break;
107
+ }
108
+ }
109
+ return get_token(stream);
110
+ // Get next token after comment
111
+ case '"': {
112
+ let str = "";
113
+ let escaped = false;
114
+ while (true) {
115
+ const ch = stream.get_char();
116
+ if (ch === "\0") {
117
+ throw new ParseError("Unterminated string", line);
118
+ }
119
+ if (escaped) {
120
+ if (ch === "n") {
121
+ str += "\n";
122
+ } else if (ch === "t") {
123
+ str += " ";
124
+ } else if (ch === "r") {
125
+ str += "\r";
126
+ } else if (ch === "\\") {
127
+ str += "\\";
128
+ } else if (ch === '"') {
129
+ str += '"';
130
+ } else {
131
+ str += ch;
132
+ }
133
+ escaped = false;
134
+ } else if (ch === "\\") {
135
+ escaped = true;
136
+ } else if (ch === '"') {
137
+ const peek = stream.peek_char();
138
+ if (peek === "\0" || peek === "\n" || peek === "\r" || peek === " " || peek === " " || peek === ";" || peek === "#") {
139
+ break;
140
+ }
141
+ break;
142
+ } else {
143
+ str += ch;
144
+ }
145
+ }
146
+ return { type: "STRING", value: str, line };
147
+ }
148
+ default: {
149
+ const peek = stream.peek_char();
150
+ if (is_digit(c) || c === "-" && is_digit(peek) || c === "+" && is_digit(peek) || c === "." && is_digit(peek)) {
151
+ let numStr = c;
152
+ let hasDot = c === ".";
153
+ while (true) {
154
+ const nextPeek = stream.peek_char();
155
+ if (is_digit(nextPeek) || nextPeek === ".") {
156
+ if (nextPeek === ".") {
157
+ if (hasDot) break;
158
+ hasDot = true;
159
+ }
160
+ numStr += stream.get_char();
161
+ } else {
162
+ break;
163
+ }
164
+ }
165
+ const num = parseFloat(numStr);
166
+ if (isNaN(num)) {
167
+ throw new ParseError(`Invalid number: ${numStr}`, line);
168
+ }
169
+ return { type: "NUMBER", value: num, line };
170
+ } else if (is_alpha(c) || c === "/") {
171
+ let ident = c;
172
+ while (true) {
173
+ const peek2 = stream.peek_char();
174
+ if (is_identifier_char(peek2)) {
175
+ ident += stream.get_char();
176
+ } else {
177
+ break;
178
+ }
179
+ }
180
+ if (ident === "true") {
181
+ return { type: "BOOLEAN", value: true, line };
182
+ } else if (ident === "false") {
183
+ return { type: "BOOLEAN", value: false, line };
184
+ }
185
+ return { type: "IDENTIFIER", value: ident, line };
186
+ } else {
187
+ throw new ParseError(`Unexpected character: ${c}`, line);
188
+ }
189
+ }
190
+ }
191
+ }
192
+ function parse_construct_args(stream) {
193
+ const args = [];
194
+ let token = get_token(stream);
195
+ if (token.type !== "PARENTHESIS_OPEN") {
196
+ throw new ParseError("Expected '(' in constructor", token.line);
197
+ }
198
+ let first = true;
199
+ while (true) {
200
+ if (!first) {
201
+ token = get_token(stream);
202
+ if (token.type === "COMMA") ; else if (token.type === "PARENTHESIS_CLOSE") {
203
+ break;
204
+ } else {
205
+ throw new ParseError("Expected ',' or ')' in constructor", token.line);
206
+ }
207
+ }
208
+ token = get_token(stream);
209
+ if (first && token.type === "PARENTHESIS_CLOSE") {
210
+ break;
211
+ }
212
+ if (token.type === "NUMBER") {
213
+ args.push(token.value);
214
+ } else if (token.type === "IDENTIFIER") {
215
+ const ident = token.value;
216
+ if (ident === "inf" || ident === "Infinity") {
217
+ args.push(Infinity);
218
+ } else if (ident === "-inf" || ident === "-Infinity") {
219
+ args.push(-Infinity);
220
+ } else if (ident === "nan" || ident === "NaN") {
221
+ args.push(NaN);
222
+ } else {
223
+ throw new ParseError(`Expected number in constructor, got: ${ident}`, token.line);
224
+ }
225
+ } else {
226
+ throw new ParseError("Expected number in constructor", token.line);
227
+ }
228
+ first = false;
229
+ }
230
+ return args;
231
+ }
232
+ function parse_value(stream) {
233
+ const token = get_token(stream);
234
+ switch (token.type) {
235
+ case "STRING":
236
+ return token.value;
237
+ case "NUMBER":
238
+ return token.value;
239
+ case "BOOLEAN":
240
+ return token.value;
241
+ case "IDENTIFIER": {
242
+ const ident = token.value;
243
+ if (ident === "Color") {
244
+ const args = parse_construct_args(stream);
245
+ if (args.length !== 4) {
246
+ throw new ParseError("Expected 4 arguments for Color constructor", token.line);
247
+ }
248
+ return { r: args[0], g: args[1], b: args[2], a: args[3] };
249
+ } else if (ident === "Vector2") {
250
+ const args = parse_construct_args(stream);
251
+ if (args.length !== 2) {
252
+ throw new ParseError("Expected 2 arguments for Vector2 constructor", token.line);
253
+ }
254
+ return { x: args[0], y: args[1] };
255
+ } else {
256
+ throw new ParseError(`Unknown identifier: ${ident}`, token.line);
257
+ }
258
+ }
259
+ default:
260
+ throw new ParseError(`Unexpected token type: ${token.type}`, token.line);
261
+ }
262
+ }
263
+ function parse_config(content) {
264
+ const values = /* @__PURE__ */ new Map();
265
+ const stream = new Stream(content);
266
+ let currentSection = "";
267
+ try {
268
+ while (true) {
269
+ while (true) {
270
+ const peek = stream.peek_char();
271
+ if (is_whitespace(peek)) {
272
+ stream.get_char();
273
+ continue;
274
+ }
275
+ break;
276
+ }
277
+ const token = get_token(stream);
278
+ if (token.type === "EOF") {
279
+ break;
280
+ }
281
+ if (token.type === "BRACKET_OPEN") {
282
+ const sectionToken = get_token(stream);
283
+ if (sectionToken.type !== "IDENTIFIER" && sectionToken.type !== "STRING") {
284
+ throw new ParseError("Expected section name", sectionToken.line);
285
+ }
286
+ let sectionName = String(sectionToken.value);
287
+ const closeToken = get_token(stream);
288
+ if (closeToken.type === "BRACKET_CLOSE") {
289
+ sectionName = sectionName.replace(/\\\]/g, "]");
290
+ currentSection = sectionName;
291
+ if (!values.has(currentSection)) {
292
+ values.set(currentSection, /* @__PURE__ */ new Map());
293
+ }
294
+ } else {
295
+ throw new ParseError("Expected ']' after section name", closeToken.line);
296
+ }
297
+ } else if (token.type === "IDENTIFIER" || token.type === "STRING") {
298
+ const key = String(token.value);
299
+ const equalToken = get_token(stream);
300
+ if (equalToken.type !== "EQUAL") {
301
+ throw new ParseError("Expected '=' after key", equalToken.line);
302
+ }
303
+ const value = parse_value(stream);
304
+ if (!values.has(currentSection)) {
305
+ values.set(currentSection, /* @__PURE__ */ new Map());
306
+ }
307
+ values.get(currentSection).set(key, value);
308
+ } else if (token.type === "BRACKET_CLOSE") {
309
+ throw new ParseError("Unexpected ']'", token.line);
310
+ }
311
+ }
312
+ } catch (error) {
313
+ if (error instanceof ParseError) {
314
+ return { values, error };
315
+ }
316
+ throw error;
317
+ }
318
+ return { values };
319
+ }
320
+
321
+ // src/writer.ts
322
+ function needs_quotes(str) {
323
+ if (str.length === 0) return true;
324
+ for (let i = 0; i < str.length; i++) {
325
+ const code = str.charCodeAt(i);
326
+ if (code === 61 || // =
327
+ code === 34 || // "
328
+ code === 59 || // ;
329
+ code === 91 || // [
330
+ code === 93 || // ]
331
+ code < 33 || // control characters and space
332
+ code > 126) {
333
+ return true;
334
+ }
335
+ }
336
+ return false;
337
+ }
338
+ function encode_key(key) {
339
+ if (needs_quotes(key)) {
340
+ const escaped = key.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
341
+ return `"${escaped}"`;
342
+ }
343
+ return key;
344
+ }
345
+ function escape_string(str) {
346
+ return str.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
347
+ }
348
+ function serialize_value(value) {
349
+ if (value === null || value === void 0) {
350
+ return "null";
351
+ }
352
+ if (typeof value === "string") {
353
+ return `"${escape_string(value)}"`;
354
+ }
355
+ if (typeof value === "number") {
356
+ if (isNaN(value)) {
357
+ return "nan";
358
+ }
359
+ if (!isFinite(value)) {
360
+ return value > 0 ? "inf" : "-inf";
361
+ }
362
+ return String(value);
363
+ }
364
+ if (typeof value === "boolean") {
365
+ return value ? "true" : "false";
366
+ }
367
+ if (typeof value === "object" && value !== null && "r" in value && "g" in value && "b" in value && "a" in value && typeof value.r === "number" && typeof value.g === "number" && typeof value.b === "number" && typeof value.a === "number") {
368
+ const color = value;
369
+ return `Color(${color.r}, ${color.g}, ${color.b}, ${color.a})`;
370
+ }
371
+ if (typeof value === "object" && value !== null && "x" in value && "y" in value && typeof value.x === "number" && typeof value.y === "number") {
372
+ const vec = value;
373
+ return `Vector2(${vec.x}, ${vec.y})`;
374
+ }
375
+ return String(value);
376
+ }
377
+ function serialize_config(values) {
378
+ const sections = [];
379
+ let first = true;
380
+ for (const [section, keys] of values.entries()) {
381
+ if (!first) {
382
+ sections.push("");
383
+ }
384
+ first = false;
385
+ if (section) {
386
+ const escapedSection = section.replace(/\]/g, "\\]");
387
+ sections.push(`[${escapedSection}]`);
388
+ sections.push("");
389
+ }
390
+ for (const [key, value] of keys.entries()) {
391
+ const encodedKey = encode_key(key);
392
+ const serializedValue = serialize_value(value);
393
+ sections.push(`${encodedKey}=${serializedValue}`);
394
+ }
395
+ }
396
+ const result = sections.join("\n");
397
+ return result + "\n";
398
+ }
399
+ var ConfigFile = class {
400
+ values = /* @__PURE__ */ new Map();
401
+ /**
402
+ * Parse config file content
403
+ * @param content Config file content as string
404
+ * @returns Error if parsing failed, undefined on success
405
+ */
406
+ parse(content) {
407
+ const { values, error } = parse_config(content);
408
+ if (error) {
409
+ return error;
410
+ }
411
+ this.values = values;
412
+ return void 0;
413
+ }
414
+ /**
415
+ * Get a value from the config file
416
+ * @param section Section name (empty string for section-less keys)
417
+ * @param key Key name
418
+ * @param defaultValue Optional default value if key doesn't exist
419
+ * @returns The value or default value
420
+ */
421
+ get_value(section, key, defaultValue) {
422
+ const sectionMap = this.values.get(section);
423
+ if (!sectionMap) {
424
+ if (defaultValue !== void 0) {
425
+ return defaultValue;
426
+ }
427
+ throw new Error(
428
+ `Section "${section}" not found and no default value provided`
429
+ );
430
+ }
431
+ if (!sectionMap.has(key)) {
432
+ if (defaultValue !== void 0) {
433
+ return defaultValue;
434
+ }
435
+ throw new Error(
436
+ `Key "${key}" not found in section "${section}" and no default value provided`
437
+ );
438
+ }
439
+ return sectionMap.get(key);
440
+ }
441
+ /**
442
+ * Set a value in the config file
443
+ * @param section Section name (empty string for section-less keys)
444
+ * @param key Key name
445
+ * @param value Value to set
446
+ */
447
+ set_value(section, key, value) {
448
+ if (!this.values.has(section)) {
449
+ this.values.set(section, /* @__PURE__ */ new Map());
450
+ }
451
+ this.values.get(section).set(key, value);
452
+ }
453
+ /**
454
+ * Save config file to disk
455
+ * @param path File path to save to
456
+ */
457
+ async save(path) {
458
+ const content = serialize_config(this.values);
459
+ await promises.writeFile(path, content, "utf-8");
460
+ }
461
+ /**
462
+ * Check if a section exists
463
+ * @param section Section name
464
+ * @returns True if section exists
465
+ */
466
+ has_section(section) {
467
+ return this.values.has(section);
468
+ }
469
+ /**
470
+ * Check if a key exists in a section
471
+ * @param section Section name
472
+ * @param key Key name
473
+ * @returns True if key exists in section
474
+ */
475
+ has_section_key(section, key) {
476
+ const sectionMap = this.values.get(section);
477
+ if (!sectionMap) {
478
+ return false;
479
+ }
480
+ return sectionMap.has(key);
481
+ }
482
+ /**
483
+ * Clear all values
484
+ */
485
+ clear() {
486
+ this.values.clear();
487
+ }
488
+ /**
489
+ * Get all section names
490
+ */
491
+ get_sections() {
492
+ return Array.from(this.values.keys());
493
+ }
494
+ /**
495
+ * Get all keys in a section
496
+ */
497
+ get_section_keys(section) {
498
+ const sectionMap = this.values.get(section);
499
+ if (!sectionMap) {
500
+ return [];
501
+ }
502
+ return Array.from(sectionMap.keys());
503
+ }
504
+ /**
505
+ * Encode config to text format
506
+ */
507
+ encode_to_text() {
508
+ return serialize_config(this.values);
509
+ }
510
+ };
511
+
512
+ // src/export-presets/parser.ts
513
+ function parseExportPresets(content) {
514
+ const configFile = new ConfigFile();
515
+ const error = configFile.parse(content);
516
+ if (error) {
517
+ throw error;
518
+ }
519
+ const presets = [];
520
+ const sections = configFile.get_sections();
521
+ const presetSections = sections.filter((s) => s.startsWith("preset.") && !s.includes(".options")).sort((a, b) => {
522
+ const aNum = parseInt(a.split(".")[1] || "0", 10);
523
+ const bNum = parseInt(b.split(".")[1] || "0", 10);
524
+ return aNum - bNum;
525
+ });
526
+ for (const presetSection of presetSections) {
527
+ const preset = {
528
+ name: "",
529
+ platform: "",
530
+ runnable: false
531
+ };
532
+ const keys = configFile.get_section_keys(presetSection);
533
+ for (const key of keys) {
534
+ const value = configFile.get_value(presetSection, key);
535
+ if (key === "options") {
536
+ continue;
537
+ }
538
+ preset[key] = value;
539
+ }
540
+ const optionsSection = `${presetSection}.options`;
541
+ if (configFile.has_section(optionsSection)) {
542
+ const options = {};
543
+ const optionKeys = configFile.get_section_keys(optionsSection);
544
+ for (const key of optionKeys) {
545
+ options[key] = configFile.get_value(optionsSection, key);
546
+ }
547
+ preset.options = options;
548
+ }
549
+ presets.push(preset);
550
+ }
551
+ return { presets };
552
+ }
553
+
554
+ // src/export-presets/serializer.ts
555
+ function serializeExportPresets(presets) {
556
+ const configFile = new ConfigFile();
557
+ for (let i = 0; i < presets.presets.length; i++) {
558
+ const preset = presets.presets[i];
559
+ const presetSection = `preset.${i}`;
560
+ const optionsSection = `${presetSection}.options`;
561
+ for (const [key, value] of Object.entries(preset)) {
562
+ if (key === "options") {
563
+ continue;
564
+ }
565
+ configFile.set_value(presetSection, key, value);
566
+ }
567
+ if (preset.options) {
568
+ for (const [key, value] of Object.entries(preset.options)) {
569
+ configFile.set_value(optionsSection, key, value);
570
+ }
571
+ }
572
+ }
573
+ return configFile.encode_to_text();
574
+ }
575
+ async function loadExportPresets(filePath) {
576
+ try {
577
+ const content = await promises.readFile(filePath, "utf-8");
578
+ return parseExportPresets(content);
579
+ } catch (error) {
580
+ if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") {
581
+ throw new Error(`File not found: ${filePath}`);
582
+ }
583
+ throw error;
584
+ }
585
+ }
586
+ async function saveExportPresets(filePath, presets) {
587
+ const content = serializeExportPresets(presets);
588
+ await promises.writeFile(filePath, content, "utf-8");
589
+ }
590
+
591
+ // src/export-presets/operations.ts
592
+ function getPreset(presets, index) {
593
+ if (index < 0 || index >= presets.presets.length) {
594
+ return void 0;
595
+ }
596
+ return presets.presets[index];
597
+ }
598
+ function findPreset(presets, criteria) {
599
+ if (criteria.index !== void 0) {
600
+ return getPreset(presets, criteria.index);
601
+ }
602
+ for (const preset of presets.presets) {
603
+ if (criteria.platform) {
604
+ const presetPlatform = String(preset.platform || "").trim().toUpperCase();
605
+ const searchPlatform = criteria.platform.trim().toUpperCase();
606
+ if (presetPlatform === searchPlatform) {
607
+ return preset;
608
+ }
609
+ }
610
+ if (criteria.name) {
611
+ const presetName = String(preset.name || "").trim().toUpperCase();
612
+ const searchName = criteria.name.trim().toUpperCase();
613
+ if (presetName === searchName) {
614
+ return preset;
615
+ }
616
+ }
617
+ }
618
+ return void 0;
619
+ }
620
+ function setPreset(presets, preset, index) {
621
+ const newPresets = [...presets.presets];
622
+ if (index !== void 0 && index >= 0 && index < newPresets.length) {
623
+ newPresets[index] = preset;
624
+ } else {
625
+ newPresets.push(preset);
626
+ }
627
+ return { presets: newPresets };
628
+ }
629
+ function removePreset(presets, index) {
630
+ if (index < 0 || index >= presets.presets.length) {
631
+ return presets;
632
+ }
633
+ const newPresets = [...presets.presets];
634
+ newPresets.splice(index, 1);
635
+ return { presets: newPresets };
636
+ }
637
+
638
+ // src/export-presets/merge.ts
639
+ function isPlainObject(value) {
640
+ return typeof value === "object" && value !== null && !Array.isArray(value) && Object.prototype.toString.call(value) === "[object Object]";
641
+ }
642
+ function deepMerge(target, source) {
643
+ const result = { ...target };
644
+ for (const [key, sourceValue] of Object.entries(source)) {
645
+ const targetValue = result[key];
646
+ if (isPlainObject(targetValue) && isPlainObject(sourceValue) && key !== "options") {
647
+ result[key] = deepMerge(
648
+ targetValue,
649
+ sourceValue
650
+ );
651
+ } else {
652
+ result[key] = sourceValue;
653
+ }
654
+ }
655
+ return result;
656
+ }
657
+ function mergePresets(...presets) {
658
+ if (presets.length === 0) {
659
+ throw new Error("At least one preset required for merging");
660
+ }
661
+ if (presets.length === 1) {
662
+ return {
663
+ ...presets[0],
664
+ options: presets[0].options ? { ...presets[0].options } : void 0
665
+ };
666
+ }
667
+ let merged = {
668
+ ...presets[0],
669
+ options: presets[0].options ? { ...presets[0].options } : void 0
670
+ };
671
+ for (let i = 1; i < presets.length; i++) {
672
+ const current = presets[i];
673
+ const currentWithoutOptions = { ...current };
674
+ delete currentWithoutOptions.options;
675
+ merged = deepMerge(
676
+ merged,
677
+ currentWithoutOptions
678
+ );
679
+ merged.options = mergeOptions(
680
+ merged.options || {},
681
+ current.options || {}
682
+ );
683
+ }
684
+ return merged;
685
+ }
686
+ function mergeOptions(...options) {
687
+ if (options.length === 0) {
688
+ return {};
689
+ }
690
+ if (options.length === 1) {
691
+ return { ...options[0] };
692
+ }
693
+ const merged = {};
694
+ for (const opts of options) {
695
+ Object.assign(merged, opts);
696
+ }
697
+ return merged;
698
+ }
699
+
700
+ // src/export-presets/base-presets.ts
701
+ function getMajorVersion(version) {
702
+ const match = version.match(/^(\d+)/);
703
+ if (!match) {
704
+ throw new Error(`Invalid version string: ${version}`);
705
+ }
706
+ const major = parseInt(match[1], 10);
707
+ if (major !== 3 && major !== 4) {
708
+ throw new Error(`Unsupported Godot version: ${major}`);
709
+ }
710
+ return major;
711
+ }
712
+ function hasBasePreset(platform, version) {
713
+ return platform === "Android" && (version === 3 || version === 4) || platform === "iOS" && (version === 3 || version === 4);
714
+ }
715
+ function getBasePreset(platform, version) {
716
+ switch (platform) {
717
+ case "Android":
718
+ return version === 3 ? getBasePreset_Android_v3() : getBasePreset_Android_v4();
719
+ case "iOS":
720
+ return version === 3 ? getBasePreset_iOS_v3() : getBasePreset_iOS_v4();
721
+ default:
722
+ throw new Error(
723
+ `Unsupported platform: ${platform}. Supported platforms: Android, iOS`
724
+ );
725
+ }
726
+ }
727
+ function getBasePreset_Android_v3() {
728
+ return {
729
+ name: "Android",
730
+ platform: "Android",
731
+ runnable: true,
732
+ advanced_options: false,
733
+ dedicated_server: false,
734
+ custom_features: "",
735
+ export_filter: "all_resources",
736
+ include_filter: "*.json",
737
+ exclude_filter: "",
738
+ export_path: "game.aab",
739
+ encryption_include_filters: "",
740
+ encryption_exclude_filters: "",
741
+ encrypt_pck: false,
742
+ encrypt_directory: false,
743
+ script_export_mode: 1,
744
+ options: {
745
+ "custom_build/use_custom_build": true,
746
+ "custom_build/export_format": 1,
747
+ "custom_build/min_sdk": "",
748
+ "custom_build/target_sdk": "",
749
+ "architectures/armeabi-v7a": false,
750
+ "architectures/arm64-v8a": true,
751
+ "architectures/x86": false,
752
+ "architectures/x86_64": false,
753
+ "one_click_deploy/clear_previous_install": true,
754
+ "package/signed": true,
755
+ "package/classify_as_game": true,
756
+ "package/retain_data_on_uninstall": false,
757
+ "package/exclude_from_recents": false,
758
+ "launcher_icons/main_192x192": "",
759
+ "launcher_icons/adaptive_foreground_432x432": "",
760
+ "launcher_icons/adaptive_background_432x432": "",
761
+ "graphics/opengl_debug": false,
762
+ "xr_features/xr_mode": 0,
763
+ "xr_features/hand_tracking": 0,
764
+ "xr_features/hand_tracking_frequency": 0,
765
+ "xr_features/passthrough": 0,
766
+ "screen/immersive_mode": true,
767
+ "screen/support_small": true,
768
+ "screen/support_normal": true,
769
+ "screen/support_large": true,
770
+ "screen/support_xlarge": true,
771
+ "user_data_backup/allow": true,
772
+ "command_line/extra_args": "",
773
+ "apk_expansion/enable": false,
774
+ "apk_expansion/salt": "",
775
+ "apk_expansion/public_key": "",
776
+ "permissions/custom_permissions": "PoolStringArray( )",
777
+ "permissions/access_checkin_properties": false,
778
+ "permissions/access_coarse_location": false,
779
+ "permissions/access_fine_location": false,
780
+ "permissions/access_location_extra_commands": false,
781
+ "permissions/access_mock_location": false,
782
+ "permissions/access_network_state": false,
783
+ "permissions/access_surface_flinger": false,
784
+ "permissions/access_wifi_state": false,
785
+ "permissions/account_manager": false,
786
+ "permissions/add_voicemail": false,
787
+ "permissions/authenticate_accounts": false,
788
+ "permissions/battery_stats": false,
789
+ "permissions/bind_accessibility_service": false,
790
+ "permissions/bind_appwidget": false,
791
+ "permissions/bind_device_admin": false,
792
+ "permissions/bind_input_method": false,
793
+ "permissions/bind_nfc_service": false,
794
+ "permissions/bind_notification_listener_service": false,
795
+ "permissions/bind_print_service": false,
796
+ "permissions/bind_remoteviews": false,
797
+ "permissions/bind_text_service": false,
798
+ "permissions/bind_vpn_service": false,
799
+ "permissions/bind_wallpaper": false,
800
+ "permissions/bluetooth": false,
801
+ "permissions/bluetooth_admin": false,
802
+ "permissions/bluetooth_privileged": false,
803
+ "permissions/brick": false,
804
+ "permissions/broadcast_package_removed": false,
805
+ "permissions/broadcast_sms": false,
806
+ "permissions/broadcast_sticky": false,
807
+ "permissions/broadcast_wap_push": false,
808
+ "permissions/call_phone": false,
809
+ "permissions/call_privileged": false,
810
+ "permissions/camera": false,
811
+ "permissions/capture_audio_output": false,
812
+ "permissions/capture_secure_video_output": false,
813
+ "permissions/capture_video_output": false,
814
+ "permissions/change_component_enabled_state": false,
815
+ "permissions/change_configuration": false,
816
+ "permissions/change_network_state": false,
817
+ "permissions/change_wifi_multicast_state": false,
818
+ "permissions/change_wifi_state": false,
819
+ "permissions/clear_app_cache": false,
820
+ "permissions/clear_app_user_data": false,
821
+ "permissions/control_location_updates": false,
822
+ "permissions/delete_cache_files": false,
823
+ "permissions/delete_packages": false,
824
+ "permissions/device_power": false,
825
+ "permissions/diagnostic": false,
826
+ "permissions/disable_keyguard": false,
827
+ "permissions/dump": false,
828
+ "permissions/expand_status_bar": false,
829
+ "permissions/factory_test": false,
830
+ "permissions/flashlight": false,
831
+ "permissions/force_back": false,
832
+ "permissions/get_accounts": false,
833
+ "permissions/get_package_size": false,
834
+ "permissions/get_tasks": false,
835
+ "permissions/get_top_activity_info": false,
836
+ "permissions/global_search": false,
837
+ "permissions/hardware_test": false,
838
+ "permissions/inject_events": false,
839
+ "permissions/install_location_provider": false,
840
+ "permissions/install_packages": false,
841
+ "permissions/install_shortcut": false,
842
+ "permissions/internal_system_window": false,
843
+ "permissions/internet": false,
844
+ "permissions/kill_background_processes": false,
845
+ "permissions/location_hardware": false,
846
+ "permissions/manage_accounts": false,
847
+ "permissions/manage_app_tokens": false,
848
+ "permissions/manage_documents": false,
849
+ "permissions/manage_external_storage": false,
850
+ "permissions/master_clear": false,
851
+ "permissions/media_content_control": false,
852
+ "permissions/modify_audio_settings": false,
853
+ "permissions/modify_phone_state": false,
854
+ "permissions/mount_format_filesystems": false,
855
+ "permissions/mount_unmount_filesystems": false,
856
+ "permissions/nfc": false,
857
+ "permissions/persistent_activity": false,
858
+ "permissions/process_outgoing_calls": false,
859
+ "permissions/read_calendar": false,
860
+ "permissions/read_call_log": false,
861
+ "permissions/read_contacts": false,
862
+ "permissions/read_external_storage": false,
863
+ "permissions/read_frame_buffer": false,
864
+ "permissions/read_history_bookmarks": false,
865
+ "permissions/read_input_state": false,
866
+ "permissions/read_logs": false,
867
+ "permissions/read_phone_state": false,
868
+ "permissions/read_profile": false,
869
+ "permissions/read_sms": false,
870
+ "permissions/read_social_stream": false,
871
+ "permissions/read_sync_settings": false,
872
+ "permissions/read_sync_stats": false,
873
+ "permissions/read_user_dictionary": false,
874
+ "permissions/reboot": false,
875
+ "permissions/receive_boot_completed": false,
876
+ "permissions/receive_mms": false,
877
+ "permissions/receive_sms": false,
878
+ "permissions/receive_wap_push": false,
879
+ "permissions/record_audio": false,
880
+ "permissions/reorder_tasks": false,
881
+ "permissions/restart_packages": false,
882
+ "permissions/send_respond_via_message": false,
883
+ "permissions/send_sms": false,
884
+ "permissions/set_activity_watcher": false,
885
+ "permissions/set_alarm": false,
886
+ "permissions/set_always_finish": false,
887
+ "permissions/set_animation_scale": false,
888
+ "permissions/set_debug_app": false,
889
+ "permissions/set_orientation": false,
890
+ "permissions/set_pointer_speed": false,
891
+ "permissions/set_preferred_applications": false,
892
+ "permissions/set_process_limit": false,
893
+ "permissions/set_time": false,
894
+ "permissions/set_time_zone": false,
895
+ "permissions/set_wallpaper": false,
896
+ "permissions/set_wallpaper_hints": false,
897
+ "permissions/signal_persistent_processes": false,
898
+ "permissions/status_bar": false,
899
+ "permissions/subscribed_feeds_read": false,
900
+ "permissions/subscribed_feeds_write": false,
901
+ "permissions/system_alert_window": false,
902
+ "permissions/transmit_ir": false,
903
+ "permissions/uninstall_shortcut": false,
904
+ "permissions/update_device_stats": false,
905
+ "permissions/use_credentials": false,
906
+ "permissions/use_sip": false,
907
+ "permissions/vibrate": false,
908
+ "permissions/wake_lock": false,
909
+ "permissions/write_apn_settings": false,
910
+ "permissions/write_calendar": false,
911
+ "permissions/write_call_log": false,
912
+ "permissions/write_contacts": false,
913
+ "permissions/write_external_storage": false,
914
+ "permissions/write_gservices": false,
915
+ "permissions/write_history_bookmarks": false,
916
+ "permissions/write_profile": false,
917
+ "permissions/write_secure_settings": false,
918
+ "permissions/write_settings": false,
919
+ "permissions/write_sms": false,
920
+ "permissions/write_social_stream": false,
921
+ "permissions/write_sync_settings": false,
922
+ "permissions/write_user_dictionary": false
923
+ }
924
+ };
925
+ }
926
+ function getBasePreset_Android_v4() {
927
+ return {
928
+ name: "Android",
929
+ platform: "Android",
930
+ runnable: true,
931
+ advanced_options: false,
932
+ dedicated_server: false,
933
+ custom_features: "",
934
+ export_filter: "all_resources",
935
+ include_filter: "",
936
+ exclude_filter: "",
937
+ export_path: "game.aab",
938
+ encryption_include_filters: "",
939
+ encryption_exclude_filters: "",
940
+ encrypt_pck: false,
941
+ encrypt_directory: false,
942
+ script_export_mode: 2,
943
+ options: {
944
+ "gradle_build/use_gradle_build": true,
945
+ "gradle_build/export_format": 1,
946
+ "gradle_build/compress_native_libraries": false,
947
+ "gradle_build/min_sdk": "",
948
+ "gradle_build/target_sdk": "",
949
+ "architectures/armeabi-v7a": false,
950
+ "architectures/arm64-v8a": true,
951
+ "architectures/x86": false,
952
+ "architectures/x86_64": false,
953
+ "package/signed": true,
954
+ "package/app_category": 2,
955
+ "package/retain_data_on_uninstall": false,
956
+ "package/exclude_from_recents": false,
957
+ "package/show_in_android_tv": false,
958
+ "package/show_in_app_library": true,
959
+ "package/show_as_launcher_app": false,
960
+ "launcher_icons/main_192x192": "",
961
+ "launcher_icons/adaptive_foreground_432x432": "",
962
+ "launcher_icons/adaptive_background_432x432": "",
963
+ "graphics/opengl_debug": false,
964
+ "xr_features/xr_mode": 0,
965
+ "screen/immersive_mode": true,
966
+ "screen/support_small": true,
967
+ "screen/support_normal": true,
968
+ "screen/support_large": true,
969
+ "screen/support_xlarge": true,
970
+ "user_data_backup/allow": false,
971
+ "command_line/extra_args": "",
972
+ "apk_expansion/enable": false,
973
+ "apk_expansion/SALT": "",
974
+ "apk_expansion/public_key": "",
975
+ "permissions/custom_permissions": "PackedStringArray()",
976
+ "permissions/access_checkin_properties": false,
977
+ "permissions/access_coarse_location": false,
978
+ "permissions/access_fine_location": false,
979
+ "permissions/access_location_extra_commands": false,
980
+ "permissions/access_mock_location": false,
981
+ "permissions/access_network_state": false,
982
+ "permissions/access_surface_flinger": false,
983
+ "permissions/access_wifi_state": false,
984
+ "permissions/account_manager": false,
985
+ "permissions/add_voicemail": false,
986
+ "permissions/authenticate_accounts": false,
987
+ "permissions/battery_stats": false,
988
+ "permissions/bind_accessibility_service": false,
989
+ "permissions/bind_appwidget": false,
990
+ "permissions/bind_device_admin": false,
991
+ "permissions/bind_input_method": false,
992
+ "permissions/bind_nfc_service": false,
993
+ "permissions/bind_notification_listener_service": false,
994
+ "permissions/bind_print_service": false,
995
+ "permissions/bind_remoteviews": false,
996
+ "permissions/bind_text_service": false,
997
+ "permissions/bind_vpn_service": false,
998
+ "permissions/bind_wallpaper": false,
999
+ "permissions/bluetooth": false,
1000
+ "permissions/bluetooth_admin": false,
1001
+ "permissions/bluetooth_privileged": false,
1002
+ "permissions/brick": false,
1003
+ "permissions/broadcast_package_removed": false,
1004
+ "permissions/broadcast_sms": false,
1005
+ "permissions/broadcast_sticky": false,
1006
+ "permissions/broadcast_wap_push": false,
1007
+ "permissions/call_phone": false,
1008
+ "permissions/call_privileged": false,
1009
+ "permissions/camera": false,
1010
+ "permissions/capture_audio_output": false,
1011
+ "permissions/capture_secure_video_output": false,
1012
+ "permissions/capture_video_output": false,
1013
+ "permissions/change_component_enabled_state": false,
1014
+ "permissions/change_configuration": false,
1015
+ "permissions/change_network_state": false,
1016
+ "permissions/change_wifi_multicast_state": false,
1017
+ "permissions/change_wifi_state": false,
1018
+ "permissions/clear_app_cache": false,
1019
+ "permissions/clear_app_user_data": false,
1020
+ "permissions/control_location_updates": false,
1021
+ "permissions/delete_cache_files": false,
1022
+ "permissions/delete_packages": false,
1023
+ "permissions/device_power": false,
1024
+ "permissions/diagnostic": false,
1025
+ "permissions/disable_keyguard": false,
1026
+ "permissions/dump": false,
1027
+ "permissions/expand_status_bar": false,
1028
+ "permissions/factory_test": false,
1029
+ "permissions/flashlight": false,
1030
+ "permissions/force_back": false,
1031
+ "permissions/get_accounts": false,
1032
+ "permissions/get_package_size": false,
1033
+ "permissions/get_tasks": false,
1034
+ "permissions/get_top_activity_info": false,
1035
+ "permissions/global_search": false,
1036
+ "permissions/hardware_test": false,
1037
+ "permissions/inject_events": false,
1038
+ "permissions/install_location_provider": false,
1039
+ "permissions/install_packages": false,
1040
+ "permissions/install_shortcut": false,
1041
+ "permissions/internal_system_window": false,
1042
+ "permissions/internet": false,
1043
+ "permissions/kill_background_processes": false,
1044
+ "permissions/location_hardware": false,
1045
+ "permissions/manage_accounts": false,
1046
+ "permissions/manage_app_tokens": false,
1047
+ "permissions/manage_documents": false,
1048
+ "permissions/manage_external_storage": false,
1049
+ "permissions/master_clear": false,
1050
+ "permissions/media_content_control": false,
1051
+ "permissions/modify_audio_settings": false,
1052
+ "permissions/modify_phone_state": false,
1053
+ "permissions/mount_format_filesystems": false,
1054
+ "permissions/mount_unmount_filesystems": false,
1055
+ "permissions/nfc": false,
1056
+ "permissions/persistent_activity": false,
1057
+ "permissions/process_outgoing_calls": false,
1058
+ "permissions/read_calendar": false,
1059
+ "permissions/read_call_log": false,
1060
+ "permissions/read_contacts": false,
1061
+ "permissions/read_external_storage": false,
1062
+ "permissions/read_frame_buffer": false,
1063
+ "permissions/read_history_bookmarks": false,
1064
+ "permissions/read_input_state": false,
1065
+ "permissions/read_logs": false,
1066
+ "permissions/read_phone_state": false,
1067
+ "permissions/read_profile": false,
1068
+ "permissions/read_sms": false,
1069
+ "permissions/read_social_stream": false,
1070
+ "permissions/read_sync_settings": false,
1071
+ "permissions/read_sync_stats": false,
1072
+ "permissions/read_user_dictionary": false,
1073
+ "permissions/reboot": false,
1074
+ "permissions/receive_boot_completed": false,
1075
+ "permissions/receive_mms": false,
1076
+ "permissions/receive_sms": false,
1077
+ "permissions/receive_wap_push": false,
1078
+ "permissions/record_audio": false,
1079
+ "permissions/reorder_tasks": false,
1080
+ "permissions/restart_packages": false,
1081
+ "permissions/send_respond_via_message": false,
1082
+ "permissions/send_sms": false,
1083
+ "permissions/set_activity_watcher": false,
1084
+ "permissions/set_alarm": false,
1085
+ "permissions/set_always_finish": false,
1086
+ "permissions/set_animation_scale": false,
1087
+ "permissions/set_debug_app": false,
1088
+ "permissions/set_orientation": false,
1089
+ "permissions/set_pointer_speed": false,
1090
+ "permissions/set_preferred_applications": false,
1091
+ "permissions/set_process_limit": false,
1092
+ "permissions/set_time": false,
1093
+ "permissions/set_time_zone": false,
1094
+ "permissions/set_wallpaper": false,
1095
+ "permissions/set_wallpaper_hints": false,
1096
+ "permissions/signal_persistent_processes": false,
1097
+ "permissions/status_bar": false,
1098
+ "permissions/subscribed_feeds_read": false,
1099
+ "permissions/subscribed_feeds_write": false,
1100
+ "permissions/system_alert_window": false,
1101
+ "permissions/transmit_ir": false,
1102
+ "permissions/uninstall_shortcut": false,
1103
+ "permissions/update_device_stats": false,
1104
+ "permissions/use_credentials": false,
1105
+ "permissions/use_sip": false,
1106
+ "permissions/vibrate": false,
1107
+ "permissions/wake_lock": false,
1108
+ "permissions/write_apn_settings": false,
1109
+ "permissions/write_calendar": false,
1110
+ "permissions/write_call_log": false,
1111
+ "permissions/write_contacts": false,
1112
+ "permissions/write_external_storage": false,
1113
+ "permissions/write_gservices": false,
1114
+ "permissions/write_history_bookmarks": false,
1115
+ "permissions/write_profile": false,
1116
+ "permissions/write_secure_settings": false,
1117
+ "permissions/write_settings": false,
1118
+ "permissions/write_sms": false,
1119
+ "permissions/write_social_stream": false,
1120
+ "permissions/write_sync_settings": false,
1121
+ "permissions/write_user_dictionary": false
1122
+ }
1123
+ };
1124
+ }
1125
+ function getBasePreset_iOS_v3() {
1126
+ return {
1127
+ name: "iOS",
1128
+ platform: "iOS",
1129
+ runnable: true,
1130
+ custom_features: "",
1131
+ export_filter: "all_resources",
1132
+ include_filter: "",
1133
+ exclude_filter: "",
1134
+ export_path: "",
1135
+ script_export_mode: 1,
1136
+ script_encryption_key: "",
1137
+ options: {
1138
+ "custom_template/debug": "",
1139
+ "architectures/armv7": false,
1140
+ "architectures/arm64": true,
1141
+ "application/copyright": "",
1142
+ "application/icon_interpolation": 4,
1143
+ "application/info": "Made with Godot Engine",
1144
+ "application/provisioning_profile_uuid_debug": "",
1145
+ "application/provisioning_profile_uuid_release": "",
1146
+ "application/signature": "",
1147
+ "application/targeted_device_family": 2,
1148
+ "capabilities/access_wifi": false,
1149
+ "capabilities/push_notifications": false,
1150
+ "user_data/accessible_from_files_app": false,
1151
+ "user_data/accessible_from_itunes_sharing": false,
1152
+ "privacy/camera_usage_description": "",
1153
+ "privacy/microphone_usage_description": "",
1154
+ "privacy/photolibrary_usage_description": "",
1155
+ "privacy/file_timestamp_access_reasons": 3,
1156
+ "privacy/system_boot_time_access_reasons": 1,
1157
+ "privacy/disk_space_access_reasons": 3,
1158
+ "privacy/active_keyboard_access_reasons": 0,
1159
+ "privacy/user_defaults_access_reasons": 0,
1160
+ "privacy/tracking_enabled": false,
1161
+ "privacy/tracking_domains": "PoolStringArray( )",
1162
+ "privacy/collected_data/name/collected": false,
1163
+ "privacy/collected_data/name/linked_to_user": false,
1164
+ "privacy/collected_data/name/used_for_tracking": false,
1165
+ "privacy/collected_data/name/collection_purposes": 0,
1166
+ "privacy/collected_data/email_address/collected": false,
1167
+ "privacy/collected_data/email_address/linked_to_user": false,
1168
+ "privacy/collected_data/email_address/used_for_tracking": false,
1169
+ "privacy/collected_data/email_address/collection_purposes": 0,
1170
+ "privacy/collected_data/phone_number/collected": false,
1171
+ "privacy/collected_data/phone_number/linked_to_user": false,
1172
+ "privacy/collected_data/phone_number/used_for_tracking": false,
1173
+ "privacy/collected_data/phone_number/collection_purposes": 0,
1174
+ "privacy/collected_data/physical_address/collected": false,
1175
+ "privacy/collected_data/physical_address/linked_to_user": false,
1176
+ "privacy/collected_data/physical_address/used_for_tracking": false,
1177
+ "privacy/collected_data/physical_address/collection_purposes": 0,
1178
+ "privacy/collected_data/other_contact_info/collected": false,
1179
+ "privacy/collected_data/other_contact_info/linked_to_user": false,
1180
+ "privacy/collected_data/other_contact_info/used_for_tracking": false,
1181
+ "privacy/collected_data/other_contact_info/collection_purposes": 0,
1182
+ "privacy/collected_data/health/collected": false,
1183
+ "privacy/collected_data/health/linked_to_user": false,
1184
+ "privacy/collected_data/health/used_for_tracking": false,
1185
+ "privacy/collected_data/health/collection_purposes": 0,
1186
+ "privacy/collected_data/fitness/collected": false,
1187
+ "privacy/collected_data/fitness/linked_to_user": false,
1188
+ "privacy/collected_data/fitness/used_for_tracking": false,
1189
+ "privacy/collected_data/fitness/collection_purposes": 0,
1190
+ "privacy/collected_data/payment_info/collected": false,
1191
+ "privacy/collected_data/payment_info/linked_to_user": false,
1192
+ "privacy/collected_data/payment_info/used_for_tracking": false,
1193
+ "privacy/collected_data/payment_info/collection_purposes": 0,
1194
+ "privacy/collected_data/credit_info/collected": false,
1195
+ "privacy/collected_data/credit_info/linked_to_user": false,
1196
+ "privacy/collected_data/credit_info/used_for_tracking": false,
1197
+ "privacy/collected_data/credit_info/collection_purposes": 0,
1198
+ "privacy/collected_data/other_financial_info/collected": false,
1199
+ "privacy/collected_data/other_financial_info/linked_to_user": false,
1200
+ "privacy/collected_data/other_financial_info/used_for_tracking": false,
1201
+ "privacy/collected_data/other_financial_info/collection_purposes": 0,
1202
+ "privacy/collected_data/precise_location/collected": false,
1203
+ "privacy/collected_data/precise_location/linked_to_user": false,
1204
+ "privacy/collected_data/precise_location/used_for_tracking": false,
1205
+ "privacy/collected_data/precise_location/collection_purposes": 0,
1206
+ "privacy/collected_data/coarse_location/collected": false,
1207
+ "privacy/collected_data/coarse_location/linked_to_user": false,
1208
+ "privacy/collected_data/coarse_location/used_for_tracking": false,
1209
+ "privacy/collected_data/coarse_location/collection_purposes": 0,
1210
+ "privacy/collected_data/sensitive_info/collected": false,
1211
+ "privacy/collected_data/sensitive_info/linked_to_user": false,
1212
+ "privacy/collected_data/sensitive_info/used_for_tracking": false,
1213
+ "privacy/collected_data/sensitive_info/collection_purposes": 0,
1214
+ "privacy/collected_data/contacts/collected": false,
1215
+ "privacy/collected_data/contacts/linked_to_user": false,
1216
+ "privacy/collected_data/contacts/used_for_tracking": false,
1217
+ "privacy/collected_data/contacts/collection_purposes": 0,
1218
+ "privacy/collected_data/emails_or_text_messages/collected": false,
1219
+ "privacy/collected_data/emails_or_text_messages/linked_to_user": false,
1220
+ "privacy/collected_data/emails_or_text_messages/used_for_tracking": false,
1221
+ "privacy/collected_data/emails_or_text_messages/collection_purposes": 0,
1222
+ "privacy/collected_data/photos_or_videos/collected": false,
1223
+ "privacy/collected_data/photos_or_videos/linked_to_user": false,
1224
+ "privacy/collected_data/photos_or_videos/used_for_tracking": false,
1225
+ "privacy/collected_data/photos_or_videos/collection_purposes": 0,
1226
+ "privacy/collected_data/audio_data/collected": false,
1227
+ "privacy/collected_data/audio_data/linked_to_user": false,
1228
+ "privacy/collected_data/audio_data/used_for_tracking": false,
1229
+ "privacy/collected_data/audio_data/collection_purposes": 0,
1230
+ "privacy/collected_data/gameplay_content/collected": false,
1231
+ "privacy/collected_data/gameplay_content/linked_to_user": false,
1232
+ "privacy/collected_data/gameplay_content/used_for_tracking": false,
1233
+ "privacy/collected_data/gameplay_content/collection_purposes": 0,
1234
+ "privacy/collected_data/customer_support/collected": false,
1235
+ "privacy/collected_data/customer_support/linked_to_user": false,
1236
+ "privacy/collected_data/customer_support/used_for_tracking": false,
1237
+ "privacy/collected_data/customer_support/collection_purposes": 0,
1238
+ "privacy/collected_data/other_user_content/collected": false,
1239
+ "privacy/collected_data/other_user_content/linked_to_user": false,
1240
+ "privacy/collected_data/other_user_content/used_for_tracking": false,
1241
+ "privacy/collected_data/other_user_content/collection_purposes": 0,
1242
+ "privacy/collected_data/browsing_history/collected": false,
1243
+ "privacy/collected_data/browsing_history/linked_to_user": false,
1244
+ "privacy/collected_data/browsing_history/used_for_tracking": false,
1245
+ "privacy/collected_data/browsing_history/collection_purposes": 0,
1246
+ "privacy/collected_data/search_hhistory/collected": false,
1247
+ "privacy/collected_data/search_hhistory/linked_to_user": false,
1248
+ "privacy/collected_data/search_hhistory/used_for_tracking": false,
1249
+ "privacy/collected_data/search_hhistory/collection_purposes": 0,
1250
+ "privacy/collected_data/user_id/collected": false,
1251
+ "privacy/collected_data/user_id/linked_to_user": false,
1252
+ "privacy/collected_data/user_id/used_for_tracking": false,
1253
+ "privacy/collected_data/user_id/collection_purposes": 0,
1254
+ "privacy/collected_data/device_id/collected": false,
1255
+ "privacy/collected_data/device_id/linked_to_user": false,
1256
+ "privacy/collected_data/device_id/used_for_tracking": false,
1257
+ "privacy/collected_data/device_id/collection_purposes": 0,
1258
+ "privacy/collected_data/purchase_history/collected": false,
1259
+ "privacy/collected_data/purchase_history/linked_to_user": false,
1260
+ "privacy/collected_data/purchase_history/used_for_tracking": false,
1261
+ "privacy/collected_data/purchase_history/collection_purposes": 0,
1262
+ "privacy/collected_data/product_interaction/collected": false,
1263
+ "privacy/collected_data/product_interaction/linked_to_user": false,
1264
+ "privacy/collected_data/product_interaction/used_for_tracking": false,
1265
+ "privacy/collected_data/product_interaction/collection_purposes": 0,
1266
+ "privacy/collected_data/advertising_data/collected": false,
1267
+ "privacy/collected_data/advertising_data/linked_to_user": false,
1268
+ "privacy/collected_data/advertising_data/used_for_tracking": false,
1269
+ "privacy/collected_data/advertising_data/collection_purposes": 0,
1270
+ "privacy/collected_data/other_usage_data/collected": false,
1271
+ "privacy/collected_data/other_usage_data/linked_to_user": false,
1272
+ "privacy/collected_data/other_usage_data/used_for_tracking": false,
1273
+ "privacy/collected_data/other_usage_data/collection_purposes": 0,
1274
+ "privacy/collected_data/crash_data/collected": false,
1275
+ "privacy/collected_data/crash_data/linked_to_user": false,
1276
+ "privacy/collected_data/crash_data/used_for_tracking": false,
1277
+ "privacy/collected_data/crash_data/collection_purposes": 0,
1278
+ "privacy/collected_data/performance_data/collected": false,
1279
+ "privacy/collected_data/performance_data/linked_to_user": false,
1280
+ "privacy/collected_data/performance_data/used_for_tracking": false,
1281
+ "privacy/collected_data/performance_data/collection_purposes": 0,
1282
+ "privacy/collected_data/other_diagnostic_data/collected": false,
1283
+ "privacy/collected_data/other_diagnostic_data/linked_to_user": false,
1284
+ "privacy/collected_data/other_diagnostic_data/used_for_tracking": false,
1285
+ "privacy/collected_data/other_diagnostic_data/collection_purposes": 0,
1286
+ "privacy/collected_data/environment_scanning/collected": false,
1287
+ "privacy/collected_data/environment_scanning/linked_to_user": false,
1288
+ "privacy/collected_data/environment_scanning/used_for_tracking": false,
1289
+ "privacy/collected_data/environment_scanning/collection_purposes": 0,
1290
+ "privacy/collected_data/hands/collected": false,
1291
+ "privacy/collected_data/hands/linked_to_user": false,
1292
+ "privacy/collected_data/hands/used_for_tracking": false,
1293
+ "privacy/collected_data/hands/collection_purposes": 0,
1294
+ "privacy/collected_data/head/collected": false,
1295
+ "privacy/collected_data/head/linked_to_user": false,
1296
+ "privacy/collected_data/head/used_for_tracking": false,
1297
+ "privacy/collected_data/head/collection_purposes": 0,
1298
+ "privacy/collected_data/other_data_types/collected": false,
1299
+ "privacy/collected_data/other_data_types/linked_to_user": false,
1300
+ "privacy/collected_data/other_data_types/used_for_tracking": false,
1301
+ "privacy/collected_data/other_data_types/collection_purposes": 0,
1302
+ "icons/app_store_1024x1024": "",
1303
+ "icons/ipad_152x152": "",
1304
+ "icons/ipad_167x167": "",
1305
+ "icons/ipad_76x76": "",
1306
+ "icons/iphone_120x120": "",
1307
+ "icons/iphone_180x180": "",
1308
+ "icons/spotlight_40x40": "",
1309
+ "icons/spotlight_80x80": "",
1310
+ "storyboard/image_scale_mode": 0,
1311
+ "storyboard/custom_image@2x": "",
1312
+ "storyboard/custom_image@3x": "",
1313
+ "storyboard/use_custom_bg_color": false,
1314
+ "storyboard/custom_bg_color": "Color( 0, 0, 0, 1 )"
1315
+ }
1316
+ };
1317
+ }
1318
+ function getBasePreset_iOS_v4() {
1319
+ return {
1320
+ name: "iOS",
1321
+ platform: "iOS",
1322
+ runnable: true,
1323
+ dedicated_server: false,
1324
+ custom_features: "",
1325
+ export_filter: "all_resources",
1326
+ include_filter: "",
1327
+ exclude_filter: "",
1328
+ export_path: "output",
1329
+ encryption_include_filters: "",
1330
+ encryption_exclude_filters: "",
1331
+ encrypt_pck: false,
1332
+ encrypt_directory: false,
1333
+ options: {
1334
+ "custom_template/debug": "",
1335
+ "custom_template/release": "",
1336
+ "architectures/arm64": true,
1337
+ "application/signature": "",
1338
+ "application/icon_interpolation": "4",
1339
+ "application/launch_screens_interpolation": "4",
1340
+ "application/export_project_only": true,
1341
+ "capabilities/access_wifi": false,
1342
+ "capabilities/push_notifications": false,
1343
+ "user_data/accessible_from_files_app": false,
1344
+ "user_data/accessible_from_itunes_sharing": false,
1345
+ "privacy/camera_usage_description": "",
1346
+ "privacy/camera_usage_description_localized": "{}",
1347
+ "privacy/microphone_usage_description": "",
1348
+ "privacy/microphone_usage_description_localized": "{}",
1349
+ "privacy/photolibrary_usage_description": "",
1350
+ "privacy/photolibrary_usage_description_localized": "{}",
1351
+ "icons/app_store_1024x1024": "",
1352
+ "icons/ipad_152x152": "",
1353
+ "icons/ipad_167x167": "",
1354
+ "icons/ipad_76x76": "",
1355
+ "icons/iphone_120x120": "",
1356
+ "icons/iphone_180x180": "",
1357
+ "icons/notification_40x40": "",
1358
+ "icons/notification_60x60": "",
1359
+ "icons/settings_58x58": "",
1360
+ "icons/settings_87x87": "",
1361
+ "icons/spotlight_40x40": "",
1362
+ "icons/spotlight_80x80": "",
1363
+ "storyboard/use_launch_screen_storyboard": true,
1364
+ "storyboard/image_scale_mode": "0",
1365
+ "storyboard/custom_image@2x": "",
1366
+ "storyboard/custom_image@3x": "",
1367
+ "storyboard/use_custom_bg_color": false,
1368
+ "storyboard/custom_bg_color": "Color(0, 0, 0, 1)",
1369
+ "landscape_launch_screens/iphone_2436x1125": "",
1370
+ "landscape_launch_screens/iphone_2208x1242": "",
1371
+ "landscape_launch_screens/ipad_1024x768": "",
1372
+ "landscape_launch_screens/ipad_2048x1536": "",
1373
+ "portrait_launch_screens/iphone_640x960": "",
1374
+ "portrait_launch_screens/iphone_640x1136": "",
1375
+ "portrait_launch_screens/iphone_750x1334": "",
1376
+ "portrait_launch_screens/iphone_1125x2436": "",
1377
+ "portrait_launch_screens/ipad_768x1024": "",
1378
+ "portrait_launch_screens/ipad_1536x2048": "",
1379
+ "portrait_launch_screens/iphone_1242x2208": ""
1380
+ }
1381
+ };
1382
+ }
1383
+
1384
+ exports.ConfigFile = ConfigFile;
1385
+ exports.findPreset = findPreset;
1386
+ exports.getBasePreset = getBasePreset;
1387
+ exports.getBasePreset_Android_v3 = getBasePreset_Android_v3;
1388
+ exports.getBasePreset_Android_v4 = getBasePreset_Android_v4;
1389
+ exports.getBasePreset_iOS_v3 = getBasePreset_iOS_v3;
1390
+ exports.getBasePreset_iOS_v4 = getBasePreset_iOS_v4;
1391
+ exports.getMajorVersion = getMajorVersion;
1392
+ exports.getPreset = getPreset;
1393
+ exports.hasBasePreset = hasBasePreset;
1394
+ exports.loadExportPresets = loadExportPresets;
1395
+ exports.mergeOptions = mergeOptions;
1396
+ exports.mergePresets = mergePresets;
1397
+ exports.parseExportPresets = parseExportPresets;
1398
+ exports.removePreset = removePreset;
1399
+ exports.saveExportPresets = saveExportPresets;
1400
+ exports.serializeExportPresets = serializeExportPresets;
1401
+ exports.setPreset = setPreset;
1402
+ //# sourceMappingURL=index.cjs.map
1403
+ //# sourceMappingURL=index.cjs.map