@hot-updater/plugin-core 0.16.5 → 0.16.6

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.
@@ -0,0 +1,40 @@
1
+ export type BuildType = "bare" | "rnef";
2
+ export type ImportInfo = {
3
+ pkg: string;
4
+ named?: string[];
5
+ defaultOrNamespace?: string;
6
+ sideEffect?: boolean;
7
+ };
8
+ export type ProviderConfig = {
9
+ imports: ImportInfo[];
10
+ configString: string;
11
+ };
12
+ export interface IConfigBuilder {
13
+ /** Sets the build type ('bare' or 'rnef') and adds necessary build imports. */
14
+ setBuildType(buildType: BuildType): this;
15
+ /** Sets the storage configuration and adds its required imports. */
16
+ setStorage(storageConfig: ProviderConfig): this;
17
+ /** Sets the database configuration and adds its required imports. */
18
+ setDatabase(databaseConfig: ProviderConfig): this;
19
+ /** Sets the intermediate code block to be placed between imports and defineConfig. */
20
+ setIntermediateCode(code: string): this;
21
+ /** Assembles and returns the final configuration string. */
22
+ getResult(): string;
23
+ }
24
+ export declare class ConfigBuilder implements IConfigBuilder {
25
+ private buildType;
26
+ private storageInfo;
27
+ private databaseInfo;
28
+ private intermediateCode;
29
+ private collectedImports;
30
+ constructor();
31
+ addImport(info: ImportInfo): this;
32
+ private addImports;
33
+ private generateImportStatements;
34
+ private generateBuildConfigString;
35
+ setBuildType(buildType: BuildType): this;
36
+ setStorage(storageConfig: ProviderConfig): this;
37
+ setDatabase(databaseConfig: ProviderConfig): this;
38
+ setIntermediateCode(code: string): this;
39
+ getResult(): string;
40
+ }
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.cjs CHANGED
@@ -22571,51 +22571,6 @@ var __webpack_modules__ = {
22571
22571
  parseUrl.MAX_INPUT_LENGTH = 2048;
22572
22572
  module.exports = parseUrl;
22573
22573
  },
22574
- "../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js": function(module, __unused_webpack_exports, __webpack_require__) {
22575
- let tty = __webpack_require__("tty");
22576
- let isColorSupported = !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && ("FORCE_COLOR" in process.env || process.argv.includes("--color") || "win32" === process.platform || tty.isatty(1) && "dumb" !== process.env.TERM || "CI" in process.env);
22577
- let formatter = (open, close, replace = open)=>(input)=>{
22578
- let string = "" + input;
22579
- let index = string.indexOf(close, open.length);
22580
- return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
22581
- };
22582
- let replaceClose = (string, close, replace, index)=>{
22583
- let start = string.substring(0, index) + replace;
22584
- let end = string.substring(index + close.length);
22585
- let nextIndex = end.indexOf(close);
22586
- return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
22587
- };
22588
- let createColors = (enabled = isColorSupported)=>({
22589
- isColorSupported: enabled,
22590
- reset: enabled ? (s)=>`\x1b[0m${s}\x1b[0m` : String,
22591
- bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String,
22592
- dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String,
22593
- italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String,
22594
- underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String,
22595
- inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String,
22596
- hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String,
22597
- strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String,
22598
- black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String,
22599
- red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String,
22600
- green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String,
22601
- yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String,
22602
- blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String,
22603
- magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String,
22604
- cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String,
22605
- white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String,
22606
- gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String,
22607
- bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String,
22608
- bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String,
22609
- bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String,
22610
- bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String,
22611
- bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String,
22612
- bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String,
22613
- bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String,
22614
- bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String
22615
- });
22616
- module.exports = createColors();
22617
- module.exports.createColors = createColors;
22618
- },
22619
22574
  "../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js": function(module) {
22620
22575
  let p = process || {}, argv = p.argv || [], env = p.env || {};
22621
22576
  let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || "win32" === p.platform || (p.stdout || {}).isTTY && "dumb" !== env.TERM || !!env.CI);
@@ -83686,12 +83641,13 @@ var __webpack_exports__ = {};
83686
83641
  printBanner: ()=>printBanner,
83687
83642
  link: ()=>banner_link,
83688
83643
  createBlobDatabasePlugin: ()=>createBlobDatabasePlugin,
83644
+ ConfigBuilder: ()=>ConfigBuilder,
83689
83645
  createZip: ()=>createZip,
83690
83646
  getCwd: ()=>getCwd,
83691
83647
  transformTsEnv: ()=>transformTsEnv,
83692
83648
  loadConfigSync: ()=>loadConfigSync
83693
83649
  });
83694
- var picocolors = __webpack_require__("../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js");
83650
+ var picocolors = __webpack_require__("../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js");
83695
83651
  var picocolors_default = /*#__PURE__*/ __webpack_require__.n(picocolors);
83696
83652
  const log = {
83697
83653
  normal: (message)=>console.log(message),
@@ -85607,7 +85563,130 @@ var __webpack_exports__ = {};
85607
85563
  }
85608
85564
  }, hooks);
85609
85565
  };
85566
+ class ConfigBuilder {
85567
+ buildType = null;
85568
+ storageInfo = null;
85569
+ databaseInfo = null;
85570
+ intermediateCode = "";
85571
+ collectedImports = new Map();
85572
+ constructor(){
85573
+ this.addImport({
85574
+ pkg: "dotenv/config",
85575
+ sideEffect: true
85576
+ });
85577
+ this.addImport({
85578
+ pkg: "hot-updater",
85579
+ named: [
85580
+ "defineConfig"
85581
+ ]
85582
+ });
85583
+ }
85584
+ addImport(info) {
85585
+ const pkg = info.pkg;
85586
+ const existing = this.collectedImports.get(pkg);
85587
+ if (existing) {
85588
+ if (info.named) for (const n of info.named)existing.named.add(n);
85589
+ if (info.defaultOrNamespace && !existing.defaultOrNamespace) existing.defaultOrNamespace = info.defaultOrNamespace;
85590
+ if (info.sideEffect && !existing.sideEffect) existing.sideEffect = true;
85591
+ } else this.collectedImports.set(pkg, {
85592
+ named: new Set(info.named ?? []),
85593
+ defaultOrNamespace: info.defaultOrNamespace,
85594
+ sideEffect: info.sideEffect ?? false
85595
+ });
85596
+ return this;
85597
+ }
85598
+ addImports(imports) {
85599
+ for (const imp of imports)this.addImport(imp);
85600
+ }
85601
+ generateImportStatements() {
85602
+ const importLines = [];
85603
+ const sortedPackages = Array.from(this.collectedImports.keys()).sort((a, b)=>{
85604
+ const isABuild = a.startsWith("@hot-updater/");
85605
+ const isBBuild = b.startsWith("@hot-updater/");
85606
+ if (isABuild !== isBBuild) return isABuild ? -1 : 1;
85607
+ if ("dotenv/config" === a) return -1;
85608
+ if ("dotenv/config" === b) return 1;
85609
+ const isAdminA = "firebase-admin" === a;
85610
+ const isAdminB = "firebase-admin" === b;
85611
+ if (isAdminA !== isAdminB) return isAdminA ? -1 : 1;
85612
+ return a.localeCompare(b);
85613
+ });
85614
+ for (const pkg of sortedPackages){
85615
+ const info = this.collectedImports.get(pkg);
85616
+ if (info.sideEffect) importLines.push(`import "${pkg}";`);
85617
+ else if (info.defaultOrNamespace) if ("firebase-admin" === pkg && info.named.size > 0) importLines.push(`import ${info.defaultOrNamespace}, { ${Array.from(info.named).sort().join(", ")} } from "${pkg}";`);
85618
+ else importLines.push(`import ${info.defaultOrNamespace} from "${pkg}";`);
85619
+ else if (info.named.size > 0) {
85620
+ const namedPart = Array.from(info.named).sort().join(", ");
85621
+ importLines.push(`import { ${namedPart} } from "${pkg}";`);
85622
+ }
85623
+ }
85624
+ return importLines.join("\n");
85625
+ }
85626
+ generateBuildConfigString() {
85627
+ if (!this.buildType) throw new Error("Build type must be set using .setBuildType()");
85628
+ switch(this.buildType){
85629
+ case "bare":
85630
+ return "bare({ enableHermes: true })";
85631
+ case "rnef":
85632
+ return "rnef()";
85633
+ default:
85634
+ throw new Error(`Invalid build type: ${this.buildType}`);
85635
+ }
85636
+ }
85637
+ setBuildType(buildType) {
85638
+ if (this.buildType) console.warn("Build type is being set multiple times. Overwriting previous value.");
85639
+ this.buildType = buildType;
85640
+ this.addImport({
85641
+ pkg: `@hot-updater/${buildType}`,
85642
+ named: [
85643
+ buildType
85644
+ ]
85645
+ });
85646
+ return this;
85647
+ }
85648
+ setStorage(storageConfig) {
85649
+ this.storageInfo = storageConfig;
85650
+ this.addImports(storageConfig.imports);
85651
+ if (storageConfig.imports.some((imp)=>imp.pkg.includes("firebase"))) this.addImport({
85652
+ pkg: "firebase-admin",
85653
+ defaultOrNamespace: "* as admin"
85654
+ });
85655
+ return this;
85656
+ }
85657
+ setDatabase(databaseConfig) {
85658
+ this.databaseInfo = databaseConfig;
85659
+ this.addImports(databaseConfig.imports);
85660
+ if (databaseConfig.imports.some((imp)=>imp.pkg.includes("firebase"))) this.addImport({
85661
+ pkg: "firebase-admin",
85662
+ defaultOrNamespace: "* as admin"
85663
+ });
85664
+ return this;
85665
+ }
85666
+ setIntermediateCode(code) {
85667
+ this.intermediateCode = code.trim();
85668
+ return this;
85669
+ }
85670
+ getResult() {
85671
+ if (!this.buildType) throw new Error("Build type must be set using .setBuildType()");
85672
+ if (!this.storageInfo) throw new Error("Storage config must be set using .setStorage()");
85673
+ if (!this.databaseInfo) throw new Error("Database config must be set using .setDatabase()");
85674
+ const importStatements = this.generateImportStatements();
85675
+ const buildConfigString = this.generateBuildConfigString();
85676
+ return `
85677
+ ${importStatements}
85678
+
85679
+ ${this.intermediateCode ? `${this.intermediateCode}\n` : ""}
85680
+ export default defineConfig({
85681
+ build: ${buildConfigString},
85682
+ storage: ${this.storageInfo.configString},
85683
+ database: ${this.databaseInfo.configString},
85684
+ });
85685
+ `.trim();
85686
+ }
85687
+ }
85610
85688
  })();
85689
+ exports.ConfigBuilder = __webpack_exports__.ConfigBuilder;
85611
85690
  exports.banner = __webpack_exports__.banner;
85612
85691
  exports.copyDirToTmp = __webpack_exports__.copyDirToTmp;
85613
85692
  exports.createBlobDatabasePlugin = __webpack_exports__.createBlobDatabasePlugin;
@@ -85625,6 +85704,7 @@ exports.transformEnv = __webpack_exports__.transformEnv;
85625
85704
  exports.transformTemplate = __webpack_exports__.transformTemplate;
85626
85705
  exports.transformTsEnv = __webpack_exports__.transformTsEnv;
85627
85706
  for(var __webpack_i__ in __webpack_exports__)if (-1 === [
85707
+ "ConfigBuilder",
85628
85708
  "banner",
85629
85709
  "copyDirToTmp",
85630
85710
  "createBlobDatabasePlugin",
package/dist/index.d.ts CHANGED
@@ -11,3 +11,4 @@ export * from "./transformTsEnv";
11
11
  export * from "./makeEnv";
12
12
  export * from "./createZip";
13
13
  export * from "./createBlobDatabasePlugin";
14
+ export * from "./ConfigBuilder";
package/dist/index.js CHANGED
@@ -22429,51 +22429,6 @@ var __webpack_modules__ = {
22429
22429
  parseUrl.MAX_INPUT_LENGTH = 2048;
22430
22430
  module.exports = parseUrl;
22431
22431
  },
22432
- "../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js": function(module, __unused_webpack_exports, __webpack_require__) {
22433
- let tty = __webpack_require__("tty");
22434
- let isColorSupported = !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && ("FORCE_COLOR" in process.env || process.argv.includes("--color") || "win32" === process.platform || tty.isatty(1) && "dumb" !== process.env.TERM || "CI" in process.env);
22435
- let formatter = (open, close, replace = open)=>(input)=>{
22436
- let string = "" + input;
22437
- let index = string.indexOf(close, open.length);
22438
- return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
22439
- };
22440
- let replaceClose = (string, close, replace, index)=>{
22441
- let start = string.substring(0, index) + replace;
22442
- let end = string.substring(index + close.length);
22443
- let nextIndex = end.indexOf(close);
22444
- return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
22445
- };
22446
- let createColors = (enabled = isColorSupported)=>({
22447
- isColorSupported: enabled,
22448
- reset: enabled ? (s)=>`\x1b[0m${s}\x1b[0m` : String,
22449
- bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String,
22450
- dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String,
22451
- italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String,
22452
- underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String,
22453
- inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String,
22454
- hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String,
22455
- strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String,
22456
- black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String,
22457
- red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String,
22458
- green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String,
22459
- yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String,
22460
- blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String,
22461
- magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String,
22462
- cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String,
22463
- white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String,
22464
- gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String,
22465
- bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String,
22466
- bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String,
22467
- bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String,
22468
- bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String,
22469
- bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String,
22470
- bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String,
22471
- bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String,
22472
- bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String
22473
- });
22474
- module.exports = createColors();
22475
- module.exports.createColors = createColors;
22476
- },
22477
22432
  "../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js": function(module) {
22478
22433
  let p = process || {}, argv = p.argv || [], env = p.env || {};
22479
22434
  let isColorSupported = !(!!env.NO_COLOR || argv.includes("--no-color")) && (!!env.FORCE_COLOR || argv.includes("--color") || "win32" === p.platform || (p.stdout || {}).isTTY && "dumb" !== env.TERM || !!env.CI);
@@ -83203,7 +83158,7 @@ function __webpack_require__(moduleId) {
83203
83158
  (()=>{
83204
83159
  __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
83205
83160
  })();
83206
- var picocolors = __webpack_require__("../../node_modules/.pnpm/picocolors@1.0.0/node_modules/picocolors/picocolors.js");
83161
+ var picocolors = __webpack_require__("../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js");
83207
83162
  var picocolors_default = /*#__PURE__*/ __webpack_require__.n(picocolors);
83208
83163
  const log = {
83209
83164
  normal: (message)=>console.log(message),
@@ -85111,4 +85066,126 @@ const createBlobDatabasePlugin = ({ name, listObjects, loadObject, uploadObject,
85111
85066
  }
85112
85067
  }, hooks);
85113
85068
  };
85114
- export { banner, copyDirToTmp, createBlobDatabasePlugin, createDatabasePlugin, createZip, createZipTargetFiles, getCwd, banner_link as link, loadConfig, loadConfigSync, log, makeEnv, printBanner, transformEnv, transformTemplate, transformTsEnv };
85069
+ class ConfigBuilder {
85070
+ buildType = null;
85071
+ storageInfo = null;
85072
+ databaseInfo = null;
85073
+ intermediateCode = "";
85074
+ collectedImports = new Map();
85075
+ constructor(){
85076
+ this.addImport({
85077
+ pkg: "dotenv/config",
85078
+ sideEffect: true
85079
+ });
85080
+ this.addImport({
85081
+ pkg: "hot-updater",
85082
+ named: [
85083
+ "defineConfig"
85084
+ ]
85085
+ });
85086
+ }
85087
+ addImport(info) {
85088
+ const pkg = info.pkg;
85089
+ const existing = this.collectedImports.get(pkg);
85090
+ if (existing) {
85091
+ if (info.named) for (const n of info.named)existing.named.add(n);
85092
+ if (info.defaultOrNamespace && !existing.defaultOrNamespace) existing.defaultOrNamespace = info.defaultOrNamespace;
85093
+ if (info.sideEffect && !existing.sideEffect) existing.sideEffect = true;
85094
+ } else this.collectedImports.set(pkg, {
85095
+ named: new Set(info.named ?? []),
85096
+ defaultOrNamespace: info.defaultOrNamespace,
85097
+ sideEffect: info.sideEffect ?? false
85098
+ });
85099
+ return this;
85100
+ }
85101
+ addImports(imports) {
85102
+ for (const imp of imports)this.addImport(imp);
85103
+ }
85104
+ generateImportStatements() {
85105
+ const importLines = [];
85106
+ const sortedPackages = Array.from(this.collectedImports.keys()).sort((a, b)=>{
85107
+ const isABuild = a.startsWith("@hot-updater/");
85108
+ const isBBuild = b.startsWith("@hot-updater/");
85109
+ if (isABuild !== isBBuild) return isABuild ? -1 : 1;
85110
+ if ("dotenv/config" === a) return -1;
85111
+ if ("dotenv/config" === b) return 1;
85112
+ const isAdminA = "firebase-admin" === a;
85113
+ const isAdminB = "firebase-admin" === b;
85114
+ if (isAdminA !== isAdminB) return isAdminA ? -1 : 1;
85115
+ return a.localeCompare(b);
85116
+ });
85117
+ for (const pkg of sortedPackages){
85118
+ const info = this.collectedImports.get(pkg);
85119
+ if (info.sideEffect) importLines.push(`import "${pkg}";`);
85120
+ else if (info.defaultOrNamespace) if ("firebase-admin" === pkg && info.named.size > 0) importLines.push(`import ${info.defaultOrNamespace}, { ${Array.from(info.named).sort().join(", ")} } from "${pkg}";`);
85121
+ else importLines.push(`import ${info.defaultOrNamespace} from "${pkg}";`);
85122
+ else if (info.named.size > 0) {
85123
+ const namedPart = Array.from(info.named).sort().join(", ");
85124
+ importLines.push(`import { ${namedPart} } from "${pkg}";`);
85125
+ }
85126
+ }
85127
+ return importLines.join("\n");
85128
+ }
85129
+ generateBuildConfigString() {
85130
+ if (!this.buildType) throw new Error("Build type must be set using .setBuildType()");
85131
+ switch(this.buildType){
85132
+ case "bare":
85133
+ return "bare({ enableHermes: true })";
85134
+ case "rnef":
85135
+ return "rnef()";
85136
+ default:
85137
+ throw new Error(`Invalid build type: ${this.buildType}`);
85138
+ }
85139
+ }
85140
+ setBuildType(buildType) {
85141
+ if (this.buildType) console.warn("Build type is being set multiple times. Overwriting previous value.");
85142
+ this.buildType = buildType;
85143
+ this.addImport({
85144
+ pkg: `@hot-updater/${buildType}`,
85145
+ named: [
85146
+ buildType
85147
+ ]
85148
+ });
85149
+ return this;
85150
+ }
85151
+ setStorage(storageConfig) {
85152
+ this.storageInfo = storageConfig;
85153
+ this.addImports(storageConfig.imports);
85154
+ if (storageConfig.imports.some((imp)=>imp.pkg.includes("firebase"))) this.addImport({
85155
+ pkg: "firebase-admin",
85156
+ defaultOrNamespace: "* as admin"
85157
+ });
85158
+ return this;
85159
+ }
85160
+ setDatabase(databaseConfig) {
85161
+ this.databaseInfo = databaseConfig;
85162
+ this.addImports(databaseConfig.imports);
85163
+ if (databaseConfig.imports.some((imp)=>imp.pkg.includes("firebase"))) this.addImport({
85164
+ pkg: "firebase-admin",
85165
+ defaultOrNamespace: "* as admin"
85166
+ });
85167
+ return this;
85168
+ }
85169
+ setIntermediateCode(code) {
85170
+ this.intermediateCode = code.trim();
85171
+ return this;
85172
+ }
85173
+ getResult() {
85174
+ if (!this.buildType) throw new Error("Build type must be set using .setBuildType()");
85175
+ if (!this.storageInfo) throw new Error("Storage config must be set using .setStorage()");
85176
+ if (!this.databaseInfo) throw new Error("Database config must be set using .setDatabase()");
85177
+ const importStatements = this.generateImportStatements();
85178
+ const buildConfigString = this.generateBuildConfigString();
85179
+ return `
85180
+ ${importStatements}
85181
+
85182
+ ${this.intermediateCode ? `${this.intermediateCode}\n` : ""}
85183
+ export default defineConfig({
85184
+ build: ${buildConfigString},
85185
+ storage: ${this.storageInfo.configString},
85186
+ database: ${this.databaseInfo.configString},
85187
+ });
85188
+ `.trim();
85189
+ }
85190
+ }
85191
+ export { ConfigBuilder, banner, copyDirToTmp, createBlobDatabasePlugin, createDatabasePlugin, createZip, createZipTargetFiles, getCwd, banner_link as link, loadConfig, loadConfigSync, log, makeEnv, printBanner, transformEnv, transformTemplate, transformTsEnv };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hot-updater/plugin-core",
3
- "version": "0.16.5",
3
+ "version": "0.16.6",
4
4
  "type": "module",
5
5
  "description": "React Native OTA solution for self-hosted",
6
6
  "sideEffects": false,
@@ -41,7 +41,7 @@
41
41
  "cosmiconfig": "9.0.0",
42
42
  "cosmiconfig-typescript-loader": "5.0.0",
43
43
  "ts-morph": "25.0.1",
44
- "@hot-updater/core": "0.16.5"
44
+ "@hot-updater/core": "0.16.6"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@babel/core": "7.26.0",