@meddleware/seal-ui 0.0.32 → 0.0.33

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
@@ -3,6 +3,12 @@
3
3
  All notable changes to `@meddleware/seal-ui` are documented here.
4
4
  Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning follows [Semantic Versioning](https://semver.org/).
5
5
 
6
+ ## [0.0.33] - 2026-10-09
7
+
8
+ ### Changed
9
+
10
+ - Manifest check validates the policy type and params against the network's registry (seal-client 0.0.19 `parseSealedManifest(text, registry)`); depends on access-gate-client ^0.0.8, seal-client ^0.0.19, ui ^0.1.31, design-tokens ^0.1.9, eslint-config ^0.0.2
11
+
6
12
  ## [0.0.32] - 2026-10-08
7
13
 
8
14
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meddleware/seal-ui",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "homepage": "https://docs.meddleware.co.uk/blockchain/sui/sealed-storage/",
5
5
  "description": "Standalone Vue 3 SPA for Sealed Storage — client-side Seal encryption + access-gated, decentralised Walrus storage on Sui.",
6
6
  "author": "MeddleWare <dev@meddleware.co.uk>",
@@ -44,10 +44,10 @@
44
44
  "access": "public"
45
45
  },
46
46
  "dependencies": {
47
- "@meddleware/access-gate-client": "^0.0.6",
48
- "@meddleware/design-tokens": "^0.1.8",
49
- "@meddleware/seal-client": "^0.0.16",
50
- "@meddleware/ui": "^0.1.30",
47
+ "@meddleware/access-gate-client": "^0.0.8",
48
+ "@meddleware/design-tokens": "^0.1.9",
49
+ "@meddleware/seal-client": "^0.0.19",
50
+ "@meddleware/ui": "^0.1.31",
51
51
  "@meddleware/walrus-client": "^0.0.26",
52
52
  "@mysten/sui": "^2.33.2",
53
53
  "@mysten/wallet-standard": "^0.21.0",
@@ -57,7 +57,7 @@
57
57
  "@meddleware/wallet-adapter": ">=0.0.12 <0.2.0"
58
58
  },
59
59
  "devDependencies": {
60
- "@meddleware/eslint-config": "^0.0.1",
60
+ "@meddleware/eslint-config": "^0.0.2",
61
61
  "@meddleware/wallet-adapter": "^0.0.13",
62
62
  "@types/node": "~24.12.2",
63
63
  "@vitejs/plugin-vue": "^6.0.9",
@@ -242,7 +242,7 @@ const decValues = ref<Record<string, string | boolean>>({})
242
242
  // AND enforce that it targets the network this app is built for — a manifest sealed on another
243
243
  // network references a package + committee that don't exist here and can never decrypt. The
244
244
  // `decManifestError` is surfaced next to the input so a rejection explains itself.
245
- const decCheck = computed(() => checkManifestForNetwork(decManifestText.value, network.value))
245
+ const decCheck = computed(() => checkManifestForNetwork(decManifestText.value, network.value, registry.value))
246
246
  const decManifest = computed<SealedManifest | null>(() => decCheck.value.manifest)
247
247
  const decManifestError = computed<string | null>(() => decCheck.value.error)
248
248
  const decProvider = computed(() =>
@@ -1,4 +1,4 @@
1
- import { parseSealedManifest, type SealedManifest } from '@meddleware/seal-client'
1
+ import { parseSealedManifest, type PolicyRegistry, type SealedManifest } from '@meddleware/seal-client'
2
2
 
3
3
  /**
4
4
  * Result of validating a pasted/loaded manifest: either the parsed manifest, or a human-readable
@@ -12,8 +12,10 @@ export type ManifestCheck =
12
12
  * Validate a manifest string for use on `network`. Rejects a malformed shape (via the shared
13
13
  * `parseSealedManifest` schema guard) and a manifest sealed for a different network — the latter
14
14
  * references a policy package + key-server committee that don't exist here and can never decrypt.
15
+ * With the network's policy `registry`, the policy type must be registered and its params must parse,
16
+ * so a bad manifest fails here instead of at transaction build time.
15
17
  */
16
- export function checkManifestForNetwork(text: string, network: string): ManifestCheck {
18
+ export function checkManifestForNetwork(text: string, network: string, registry?: PolicyRegistry): ManifestCheck {
17
19
  if (!text.trim()) return { manifest: null, error: null }
18
20
  try {
19
21
  const manifest = parseSealedManifest(text)
@@ -23,7 +25,7 @@ export function checkManifestForNetwork(text: string, network: string): Manifest
23
25
  error: `This manifest is for '${manifest.network}', but this app is on '${network}'. It cannot be decrypted here.`,
24
26
  }
25
27
  }
26
- return { manifest, error: null }
28
+ return { manifest: registry ? parseSealedManifest(manifest, registry) : manifest, error: null }
27
29
  } catch (e) {
28
30
  return { manifest: null, error: e instanceof Error ? e.message : 'Invalid manifest.' }
29
31
  }