bozana-expo-version-json 6.1.0 → 6.1.2

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/README.md CHANGED
@@ -100,6 +100,12 @@ writes usage events; the projection itself is `nativeDescriptorFromText` /
100
100
  `assertVersionData` + native-projection rules (no consumer transform or
101
101
  serializer) so CI never restates them.
102
102
 
103
+ Installation captures the collector's protocol, projection contract and
104
+ `readNative` function as own data properties, then freezes the collector. Its
105
+ object identity stays the same for CI's ownership check; config code cannot
106
+ replace, delete or redefine the installed capability. Uninstalling with
107
+ `installVersionUsageProbe(undefined)` remains supported.
108
+
103
109
  `loadVersionData` and `withVersionJson(..., { toExtra: true })` read the whole
104
110
  payload through ordinary `node:fs`, which is what CI classifies as full
105
111
  exposure — by observation, not declaration. When no compatible collector is
@@ -114,7 +120,7 @@ seeding. This protocol is evidence about the helper and observed Node reads; it
114
120
  does not certify arbitrary plugin behavior or other native inputs.
115
121
 
116
122
  The CI-278 delivery treats this as cooperative instrumentation. It accepts the
117
- remaining startup, mutable-collector/prototype, child-delegation and report-write
123
+ remaining startup, collection-prototype, child-delegation and report-write
118
124
  gaps described in the [Maestro observation boundary](../../docs/maestro-rebundle.md#accepted-observation-boundary).
119
125
  [PR #829](https://bitbucket.org/infopuls/ci-artifacts/pull-requests/829) remains open
120
126
  for that hardening; a supported protocol response alone does not establish a
package/dist/probe.d.ts CHANGED
@@ -27,14 +27,14 @@ export declare const VERSION_USAGE_GLOBAL: unique symbol;
27
27
  */
28
28
  export declare const NATIVE_PROJECTION_CONTRACT: "expo-native-version-v1";
29
29
  export type VersionUsageCollector = {
30
- protocol: typeof VERSION_USAGE_PROTOCOL;
31
- nativeContract: typeof NATIVE_PROJECTION_CONTRACT;
30
+ readonly protocol: typeof VERSION_USAGE_PROTOCOL;
31
+ readonly nativeContract: typeof NATIVE_PROJECTION_CONTRACT;
32
32
  /**
33
33
  * Read `versionPath` and return ONLY its native projection, detached. The
34
34
  * collector — not its caller — performs the read, so the payload never
35
35
  * reaches config code through this API.
36
36
  */
37
- readNative: (versionPath: string) => NativeVersionDescriptor;
37
+ readonly readNative: (versionPath: string) => NativeVersionDescriptor;
38
38
  };
39
39
  /**
40
40
  * The installed collector, or `undefined` when none is compatible.
package/dist/probe.js CHANGED
@@ -92,9 +92,10 @@ export function installVersionUsageProbe(value) {
92
92
  }
93
93
  return;
94
94
  }
95
- if (value.protocol !== VERSION_USAGE_PROTOCOL ||
96
- value.nativeContract !== NATIVE_PROJECTION_CONTRACT ||
97
- typeof value.readNative !== "function") {
95
+ const { protocol, nativeContract, readNative } = value;
96
+ if (protocol !== VERSION_USAGE_PROTOCOL ||
97
+ nativeContract !== NATIVE_PROJECTION_CONTRACT ||
98
+ typeof readNative !== "function") {
98
99
  throw new Error(`version usage probe protocol must be ${VERSION_USAGE_PROTOCOL} ` +
99
100
  `for ${NATIVE_PROJECTION_CONTRACT}`);
100
101
  }
@@ -103,7 +104,12 @@ export function installVersionUsageProbe(value) {
103
104
  "installVersionUsageProbe(undefined) before installing another");
104
105
  }
105
106
  const previous = installed;
106
- installed = value;
107
+ Object.defineProperties(value, {
108
+ protocol: { value: protocol },
109
+ nativeContract: { value: nativeContract },
110
+ readNative: { value: readNative },
111
+ });
112
+ installed = Object.freeze(value);
107
113
  try {
108
114
  claimSlot();
109
115
  }
package/dist/probe.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAAgC,MAAM,YAAY,CAAC;AAEnF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAU,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAC5C,oCAAoC,CACrC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAalE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAI,UAA2C,CACxD,oBAAoB,CACrB,CAAC;IACF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,MAAM,SAAS,GAAG,KAAuC,CAAC;IAC1D,OAAO,SAAS,CAAC,QAAQ,KAAK,sBAAsB;QAChD,SAAS,CAAC,cAAc,KAAK,0BAA0B;QACvD,OAAO,SAAS,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QAC7C,SAAmC,CAAC,CAAC;QACtC,SAAS,CAAC;AACd,CAAC;AAED,6EAA6E;AAC7E;;;;;GAKG;AACH,IAAI,SAA4C,CAAC;AACjD,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB;;;;;GAKG;AACH,SAAS,SAAS;IAChB,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,oBAAoB,EAAE;YACtD,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6FAA6F,EAC7F,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAwC;IAExC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,SAAS,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAQ,UAA2C,CAAC,oBAAoB,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO;IACT,CAAC;IACD,IACE,KAAK,CAAC,QAAQ,KAAK,sBAAsB;QACzC,KAAK,CAAC,cAAc,KAAK,0BAA0B;QACnD,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EACtC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,wCAAwC,sBAAsB,GAAG;YAC/D,OAAO,0BAA0B,EAAE,CACtC,CAAC;IACJ,CAAC;IACD,IAAI,qBAAqB,EAAE,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,gEAAgE;YAC9D,+DAA+D,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC;IAC3B,SAAS,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,SAAS,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,SAAS,GAAG,QAAQ,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAgC,CAAC"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bozana-expo-version-json",
3
3
  "license": "UNLICENSED",
4
- "version": "6.1.0",
4
+ "version": "6.1.2",
5
5
  "description": "Consumer-side version.json contract for ci-artifacts Expo version-state — strict read/validate/types. Zero runtime deps.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",