@flancer32/teq-web 0.6.0 → 0.7.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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.7.0] - 2026-03-16 - Runtime composition and agent interface alignment
4
+
5
+ ### Changed
6
+ - Refined runtime configuration composition for server and TLS branches and preserved immutable runtime state semantics.
7
+ - Updated and verified the `ai/` consumer interface documentation against the current package behavior and usage rules.
8
+ - Updated package version metadata to `0.7.0`.
9
+
3
10
  ## [0.6.0] - 2026-03-16 - Runtime configuration hardening
4
11
 
5
12
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flancer32/teq-web",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Server-side web request coordination infrastructure for TeqFW modular monolith applications.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -20,30 +20,27 @@ export class Data {
20
20
  const cfg = new Data();
21
21
  let frozen = false;
22
22
 
23
+ const facade = {};
24
+
23
25
  /** @type {Fl32_Web_Back_Config_Runtime_Tls} */
24
- const proxy = new Proxy(cfg, {
25
- get(target, prop) {
26
+ const proxy = new Proxy(facade, {
27
+ get(_target, prop) {
26
28
  const isServiceProp = (prop === 'then') || (typeof prop === 'symbol');
27
29
  if (!frozen && !isServiceProp) throw new Error('Runtime configuration is not initialized.');
28
- return target[prop];
30
+ return cfg[prop];
29
31
  },
30
32
  set() {
31
33
  throw new Error('Runtime configuration is immutable.');
32
34
  },
33
- defineProperty(target, prop, descriptor) {
34
- const current = Object.getOwnPropertyDescriptor(target, prop);
35
- const isFreezeStep = current
36
- && (descriptor?.configurable === false)
37
- && (!('writable' in descriptor) || descriptor.writable === false)
38
- && (!('value' in descriptor) || descriptor.value === current.value);
39
- if (isFreezeStep) {
40
- return Reflect.defineProperty(target, prop, descriptor);
41
- }
35
+ defineProperty() {
42
36
  throw new Error('Runtime configuration is immutable.');
43
37
  },
44
38
  deleteProperty() {
45
39
  throw new Error('Runtime configuration is immutable.');
46
40
  },
41
+ preventExtensions() {
42
+ throw new Error('Runtime configuration wrapper cannot be frozen.');
43
+ },
47
44
  });
48
45
 
49
46
  export default class Wrapper {
@@ -30,30 +30,27 @@ export class Server {
30
30
  const cfg = new Data();
31
31
  let frozen = false;
32
32
 
33
+ const facade = {};
34
+
33
35
  /** @type {Fl32_Web_Back_Config_Runtime} */
34
- const proxy = new Proxy(cfg, {
35
- get(target, prop) {
36
+ const proxy = new Proxy(facade, {
37
+ get(_target, prop) {
36
38
  const isServiceProp = (prop === 'then') || (typeof prop === 'symbol');
37
39
  if (!frozen && !isServiceProp) throw new Error('Runtime configuration is not initialized.');
38
- return target[prop];
40
+ return cfg[prop];
39
41
  },
40
42
  set() {
41
43
  throw new Error('Runtime configuration is immutable.');
42
44
  },
43
- defineProperty(target, prop, descriptor) {
44
- const current = Object.getOwnPropertyDescriptor(target, prop);
45
- const isFreezeStep = current
46
- && (descriptor?.configurable === false)
47
- && (!('writable' in descriptor) || descriptor.writable === false)
48
- && (!('value' in descriptor) || descriptor.value === current.value);
49
- if (isFreezeStep) {
50
- return Reflect.defineProperty(target, prop, descriptor);
51
- }
45
+ defineProperty() {
52
46
  throw new Error('Runtime configuration is immutable.');
53
47
  },
54
48
  deleteProperty() {
55
49
  throw new Error('Runtime configuration is immutable.');
56
50
  },
51
+ preventExtensions() {
52
+ throw new Error('Runtime configuration wrapper cannot be frozen.');
53
+ },
57
54
  });
58
55
 
59
56
  export default class Wrapper {