@multiplatform.one/config 7.0.0 → 7.2.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/lib/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as createViteConfig } from "./vite-DzOl_bpS.js";
1
+ import { t as createViteConfig } from "./vite-C7884n3X.js";
2
2
  import { t as createStorybookViteConfig } from "./storybook-CrdwuS_Y.js";
3
3
  import { createVitestConfig } from "./vitest.js";
4
4
 
@@ -80,7 +80,10 @@ function createViteConfig(options = {}) {
80
80
  const { projectRoot: _projectRoot, publicConfigKeys = [], tamagui = true, i18n = false, one = false, ssr, server, plugins: extraPlugins = [], externalReactRouter, ssrDeps, ssrEntries, ssrCjsExternal, nativeFixes } = options;
81
81
  const projectRoot = _projectRoot || findProjectRoot();
82
82
  dotenv.config({ path: path.resolve(projectRoot, ".env") });
83
- if (publicConfigKeys.length > 0) process.env.VITE_MP_CONFIG = JSON.stringify(resolveConfig(publicConfigKeys));
83
+ if (publicConfigKeys.length > 0) {
84
+ process.env.VITE_MP_CONFIG = JSON.stringify(resolveConfig(publicConfigKeys));
85
+ process.env.VITE_MP_PUBLIC_CONFIG_KEYS = JSON.stringify(publicConfigKeys);
86
+ }
84
87
  const vitePlugins = [];
85
88
  vitePlugins.push(preferBuiltWorkspaceEntryPlugin());
86
89
  if (one) {
package/lib/vite.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as createViteConfig } from "./vite-DzOl_bpS.js";
1
+ import { t as createViteConfig } from "./vite-C7884n3X.js";
2
2
  import { n as publicPackageViteSourceAliases, t as discoverPublicPackageRoots } from "./workspacePublicPackages-COicQSj4.js";
3
3
 
4
4
  export { createViteConfig, discoverPublicPackageRoots, publicPackageViteSourceAliases };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/config",
3
- "version": "7.0.0",
3
+ "version": "7.2.0",
4
4
  "description": "Shared build and test configuration presets for multiplatform.one",
5
5
  "keywords": [
6
6
  "config",
@@ -87,7 +87,7 @@
87
87
  "vite-plugin-external": "^6.2.2",
88
88
  "vite-plugin-i18next-loader": "^3.1.3",
89
89
  "vitest": "^4.1.5",
90
- "@multiplatform.one/utils": "7.0.0"
90
+ "@multiplatform.one/utils": "7.2.0"
91
91
  },
92
92
  "devDependencies": {
93
93
  "tsdown": "^0.21.10",
package/src/vite.spec.ts CHANGED
@@ -115,3 +115,34 @@ describe("nativeFixes.web3Stub", () => {
115
115
  ).toBeFalsy();
116
116
  });
117
117
  });
118
+
119
+ describe("public config bake", () => {
120
+ const bakedKeys = "VITE_MP_PUBLIC_CONFIG_KEYS";
121
+ const bakedValues = "VITE_MP_CONFIG";
122
+
123
+ beforeEach(() => {
124
+ delete process.env[bakedKeys];
125
+ delete process.env[bakedValues];
126
+ });
127
+
128
+ it("bakes the public key NAMES so the SSR server can resolve their values at runtime", () => {
129
+ // Values stay out of the image (an environment-agnostic build); the names
130
+ // travel instead, and double as the allowlist that keeps a private key out
131
+ // of the served document (@multiplatform.one/platform runtimeConfig).
132
+ createViteConfig({ publicConfigKeys: ["MARKETPLACE_API_URL", "FRAPPE_ENABLED"] });
133
+ expect(JSON.parse(process.env[bakedKeys]!)).toEqual(["MARKETPLACE_API_URL", "FRAPPE_ENABLED"]);
134
+ });
135
+
136
+ it("still bakes the build-environment VALUES so apps that bake keep working", () => {
137
+ process.env.MPO_VITE_SPEC_PUBLIC = "baked-in";
138
+ createViteConfig({ publicConfigKeys: ["MPO_VITE_SPEC_PUBLIC"] });
139
+ expect(JSON.parse(process.env[bakedValues]!)).toEqual({ MPO_VITE_SPEC_PUBLIC: "baked-in" });
140
+ delete process.env.MPO_VITE_SPEC_PUBLIC;
141
+ });
142
+
143
+ it("bakes nothing when the app declares no public keys", () => {
144
+ createViteConfig({});
145
+ expect(process.env[bakedKeys]).toBeUndefined();
146
+ expect(process.env[bakedValues]).toBeUndefined();
147
+ });
148
+ });
package/src/vite.ts CHANGED
@@ -195,6 +195,13 @@ export function createViteConfig(options: CreateViteConfigOptions = {}): UserCon
195
195
  dotenv.config({ path: path.resolve(projectRoot, ".env") });
196
196
  if (publicConfigKeys.length > 0) {
197
197
  process.env.VITE_MP_CONFIG = JSON.stringify(resolveConfig(publicConfigKeys));
198
+ // Bake only the NAMES of the public keys, never a value: this is what lets
199
+ // the SSR node process resolve their values from ITS OWN process.env at
200
+ // request time and publish them into the served document
201
+ // (@multiplatform.one/platform runtimeConfig.ts). Values stay out of the
202
+ // image, so one build is deployable to every environment; the names are
203
+ // also the allowlist that keeps a private key from ever being serialized.
204
+ process.env.VITE_MP_PUBLIC_CONFIG_KEYS = JSON.stringify(publicConfigKeys);
198
205
  }
199
206
 
200
207
  const vitePlugins: UserConfig["plugins"] = [];
@@ -1 +1 @@
1
- {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAC;AAI/C,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EACJ,OAAO,GACP;QACE;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAEtB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEN;;OAEG;IACH,IAAI,CAAC,EACD,OAAO,GACP;QACE;;;WAGG;QACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAEjB;;WAEG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IAEN;;;OAGG;IACH,GAAG,CAAC,EACA,OAAO,GACP;QACE,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,GAAG,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC/B,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IAEN;;OAEG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEhC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAEF;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAElC;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB;;;;;;;WAOG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,UAAU,CAyRlF;AAED,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,MAAM,CAAC;AAI/C,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,OAAO,CAAC,EACJ,OAAO,GACP;QACE;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAEtB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEN;;OAEG;IACH,IAAI,CAAC,EACD,OAAO,GACP;QACE;;;WAGG;QACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAEjB;;WAEG;QACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;IAEN;;;OAGG;IACH,GAAG,CAAC,EACA,OAAO,GACP;QACE,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3B,GAAG,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC/B,MAAM,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAAC;IAEN;;OAEG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAEhC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IAEF;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAElC;;;OAGG;IACH,WAAW,CAAC,EAAE;QACZ;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB;;;;;;;WAOG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,UAAU,CAgSlF;AAED,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC"}