@liveroom-tech/react-immersive 4.0.1 → 4.0.3

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
@@ -982,6 +982,24 @@ ending in `.glb`, `.gltf`, `.obj`, `.fbx`, or `.usdz` are detected automatically
982
982
 
983
983
  License key for the library. Required.
984
984
 
985
+ ### `licenseValidationUrl`
986
+
987
+ Optional. Points license validation at a different endpoint, for first-party or
988
+ self-hosted consoles that proxy validation through their own origin instead of
989
+ calling `react-immersive.liveroom.dev` cross-origin.
990
+
991
+ This is not a way to self-approve a license. When this prop is set, a successful
992
+ response is only accepted if it carries an `offlineGrant` signed by the React
993
+ Immersive license service, verified against the ECDSA public key pinned in this
994
+ package — and the resulting `environment` and `tier` are read from that signed
995
+ grant, not from the surrounding JSON body. An endpoint that returns
996
+ `{"valid": true}` without a valid grant is treated as a broken license server:
997
+ the SDK falls back to a previously verified grant if one is cached, and
998
+ otherwise fails closed.
999
+
1000
+ In practice the endpoint must be a deployment of the official validation route
1001
+ configured with `LICENSE_GRANT_PRIVATE_KEY`.
1002
+
985
1003
  ### `objectBindings`
986
1004
 
987
1005
  A map keyed by the model node name. Each key should match a mesh name from the GLB/GLTF file.
package/dist/index.d.mts CHANGED
@@ -180,7 +180,13 @@ type ModelViewerProps = {
180
180
  /** Explicit format for extensionless or signed model URLs. */
181
181
  modelFormat?: ModelFormat;
182
182
  licenseKey: string;
183
- /** Trusted validation endpoint override for first-party/self-hosted consoles. */
183
+ /**
184
+ * Alternate licence validation endpoint, for first-party/self-hosted consoles
185
+ * that proxy validation through their own origin. The response must carry a
186
+ * signed grant issued by the React Immersive licence service; the entitlement
187
+ * is read from that grant, so this cannot be pointed at an arbitrary server
188
+ * to approve a licence.
189
+ */
184
190
  licenseValidationUrl?: string;
185
191
  objectBindings: Record<string, ObjectBinding>;
186
192
  selectedObject?: ObjectBinding | null;
@@ -283,7 +289,13 @@ type BindingBuilderProjectChangeOrigin = "local" | "remote";
283
289
 
284
290
  type BindingBuilderProps = {
285
291
  licenseKey: string;
286
- /** Trusted validation endpoint override for first-party/self-hosted consoles. */
292
+ /**
293
+ * Alternate licence validation endpoint, for first-party/self-hosted consoles
294
+ * that proxy validation through their own origin. The response must carry a
295
+ * signed grant issued by the React Immersive licence service; the entitlement
296
+ * is read from that grant, so this cannot be pointed at an arbitrary server
297
+ * to approve a licence.
298
+ */
287
299
  licenseValidationUrl?: string;
288
300
  /** Directory containing the DRACO decoder files, or false. */
289
301
  dracoDecoderPath?: string | false;
package/dist/index.d.ts CHANGED
@@ -180,7 +180,13 @@ type ModelViewerProps = {
180
180
  /** Explicit format for extensionless or signed model URLs. */
181
181
  modelFormat?: ModelFormat;
182
182
  licenseKey: string;
183
- /** Trusted validation endpoint override for first-party/self-hosted consoles. */
183
+ /**
184
+ * Alternate licence validation endpoint, for first-party/self-hosted consoles
185
+ * that proxy validation through their own origin. The response must carry a
186
+ * signed grant issued by the React Immersive licence service; the entitlement
187
+ * is read from that grant, so this cannot be pointed at an arbitrary server
188
+ * to approve a licence.
189
+ */
184
190
  licenseValidationUrl?: string;
185
191
  objectBindings: Record<string, ObjectBinding>;
186
192
  selectedObject?: ObjectBinding | null;
@@ -283,7 +289,13 @@ type BindingBuilderProjectChangeOrigin = "local" | "remote";
283
289
 
284
290
  type BindingBuilderProps = {
285
291
  licenseKey: string;
286
- /** Trusted validation endpoint override for first-party/self-hosted consoles. */
292
+ /**
293
+ * Alternate licence validation endpoint, for first-party/self-hosted consoles
294
+ * that proxy validation through their own origin. The response must carry a
295
+ * signed grant issued by the React Immersive licence service; the entitlement
296
+ * is read from that grant, so this cannot be pointed at an arbitrary server
297
+ * to approve a licence.
298
+ */
287
299
  licenseValidationUrl?: string;
288
300
  /** Directory containing the DRACO decoder files, or false. */
289
301
  dracoDecoderPath?: string | false;