@xemahq/biome-database-nest 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane-client.d.ts","sourceRoot":"","sources":["../../src/lib/control-plane-client.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AAOzE,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAWR;AAYD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAuB9B"}
1
+ {"version":3,"file":"control-plane-client.d.ts","sourceRoot":"","sources":["../../src/lib/control-plane-client.ts"],"names":[],"mappings":"AA8CA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,eAAO,MAAM,6BAA6B,8BAA8B,CAAC;AAOzE,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAWR;AAYD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,2BAA2B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CA0B9B"}
@@ -31,6 +31,41 @@ async function fetchSystemDatabaseConfig(baseUrl, serviceToken, req) {
31
31
  const body = await response.text().catch(() => '<unreadable body>');
32
32
  throw new Error(`fetchSystemDatabaseConfig: ${url} responded ${response.status} ${response.statusText}: ${body}`);
33
33
  }
34
- return (await response.json());
34
+ const payload = (await response.json());
35
+ const config = unwrapEnvelope(payload);
36
+ assertCompleteConfig(config, url);
37
+ return config;
38
+ }
39
+ const REQUIRED_CONFIG_FIELDS = [
40
+ 'host',
41
+ 'port',
42
+ 'username',
43
+ 'password',
44
+ 'database',
45
+ ];
46
+ function unwrapEnvelope(payload) {
47
+ if (payload !== null &&
48
+ typeof payload === 'object' &&
49
+ 'data' in payload &&
50
+ payload.data !== null &&
51
+ typeof payload.data === 'object') {
52
+ return payload.data;
53
+ }
54
+ return payload;
55
+ }
56
+ function assertCompleteConfig(config, url) {
57
+ const record = config !== null && typeof config === 'object'
58
+ ? config
59
+ : {};
60
+ const missing = REQUIRED_CONFIG_FIELDS.filter((field) => {
61
+ const value = record[field];
62
+ return value === undefined || value === null || value === '';
63
+ });
64
+ if (missing.length > 0) {
65
+ throw new Error(`fetchSystemDatabaseConfig: ${url} returned a config missing required ` +
66
+ `field(s): ${missing.join(', ')}. Present keys: ` +
67
+ `[${Object.keys(record).join(', ')}]. (If the keys look nested, the ` +
68
+ `{ data } response envelope was not unwrapped.)`);
69
+ }
35
70
  }
36
71
  //# sourceMappingURL=control-plane-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane-client.js","sourceRoot":"","sources":["../../src/lib/control-plane-client.ts"],"names":[],"mappings":";;;AA6DA,gEAaC;AAYD,8DA2BC;AA3DY,QAAA,6BAA6B,GAAG,2BAA2B,CAAC;AAOzE,SAAgB,0BAA0B,CACxC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,qCAA6B,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,oBAAoB,qCAA6B,uBAAuB;YACtE,yEAAyE;YACzE,8EAA8E;YAC9E,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAYM,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,YAAoB,EACpB,GAAgC;IAEhC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC;IAEpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,YAAY,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CACjG,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"control-plane-client.js","sourceRoot":"","sources":["../../src/lib/control-plane-client.ts"],"names":[],"mappings":";;;AA6DA,gEAaC;AAYD,8DA8BC;AA9DY,QAAA,6BAA6B,GAAG,2BAA2B,CAAC;AAOzE,SAAgB,0BAA0B,CACxC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,GAAG,GAAG,GAAG,CAAC,qCAA6B,CAAC,CAAC;IAC/C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,oBAAoB,qCAA6B,uBAAuB;YACtE,yEAAyE;YACzE,8EAA8E;YAC9E,uEAAuE,CAC1E,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAYM,KAAK,UAAU,yBAAyB,CAC7C,OAAe,EACf,YAAoB,EACpB,GAAgC;IAEhC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,0BAA0B,CAAC;IAEpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,YAAY,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,cAAc,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,EAAE,CACjG,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAY,CAAC;IACnD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,sBAAsB,GAAG;IAC7B,MAAM;IACN,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;CACF,CAAC;AAQX,SAAS,cAAc,CAAC,OAAgB;IACtC,IACE,OAAO,KAAK,IAAI;QAChB,OAAO,OAAO,KAAK,QAAQ;QAC3B,MAAM,IAAI,OAAO;QAChB,OAA6B,CAAC,IAAI,KAAK,IAAI;QAC5C,OAAQ,OAA6B,CAAC,IAAI,KAAK,QAAQ,EACvD,CAAC;QACD,OAAQ,OAAyC,CAAC,IAAI,CAAC;IACzD,CAAC;IACD,OAAO,OAA8B,CAAC;AACxC,CAAC;AASD,SAAS,oBAAoB,CAC3B,MAA2B,EAC3B,GAAW;IAIX,MAAM,MAAM,GACV,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC3C,CAAC,CAAE,MAA6C;QAChD,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,OAAO,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,sCAAsC;YACrE,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YACjD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mCAAmC;YACrE,gDAAgD,CACnD,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/biome-database-nest",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Layer 1 SDK that centralizes ALL database concerns for Xema biome services. Provides the single correct construction of a schema-qualified Prisma driver-adapter (the second-arg `{ schema }` that makes `@prisma/adapter-pg` qualify `biome_<id>.<table>` instead of `public.<table>`), the per-biome schema-naming convention, env/control-plane config resolution, and a boot-time bootstrap that creates the schema and runs migrations. Biomes carry zero DB boilerplate.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",