@colixsystems/widget-sdk 0.175.0 → 0.176.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/README.md CHANGED
@@ -73,7 +73,11 @@ See the design reference for the full architecture: [`docs/architecture/widget-m
73
73
 
74
74
  ## Status
75
75
 
76
- `v0.175.0` — pre-publish. The package surface (types, function names, export paths) is the v1 contract; runtime behaviour for some hooks is stubbed (each hook documents what's wired and what isn't). It is **not yet published to npm**.
76
+ `v0.176.0` — pre-publish. The package surface (types, function names, export paths) is the v1 contract; runtime behaviour for some hooks is stubbed (each hook documents what's wired and what isn't). It is **not yet published to npm**.
77
+
78
+ ### What's new in 0.176.0 (contract 1.137.0)
79
+
80
+ **`manifest.description` is optional.** A widget publishes with a name and no description; when present, the description must still be a string. The storefront shows no blurb for a widget without one.
77
81
 
78
82
  ### What's new in 0.175.0 (contract 1.136.0)
79
83
 
package/dist/contract.cjs CHANGED
@@ -2598,8 +2598,8 @@ const MANIFEST_SCHEMA = {
2598
2598
  },
2599
2599
  description: {
2600
2600
  type: "string",
2601
- required: true,
2602
- description: "1-2 sentence storefront description.",
2601
+ required: false,
2602
+ description: "Optional. 1-2 sentence storefront description.",
2603
2603
  },
2604
2604
  author: {
2605
2605
  type: "object",
@@ -4716,7 +4716,7 @@ const CONTRACT = deepFreeze({
4716
4716
  // without saving it, through the new `device.pdfViewer` host slice. And
4717
4717
  // `createObjectURL` joins `bannedApis`: widgets reached for it to fake a
4718
4718
  // "print version" as a plain-text blob that never worked on native.
4719
- version: "1.136.0",
4719
+ version: "1.137.0",
4720
4720
  sharedTranslationKeys: SHARED_TRANSLATION_KEYS,
4721
4721
  hooks: HOOKS,
4722
4722
  primitives: PRIMITIVES,
package/dist/contract.js CHANGED
@@ -2594,8 +2594,8 @@ const MANIFEST_SCHEMA = {
2594
2594
  },
2595
2595
  description: {
2596
2596
  type: "string",
2597
- required: true,
2598
- description: "1-2 sentence storefront description.",
2597
+ required: false,
2598
+ description: "Optional. 1-2 sentence storefront description.",
2599
2599
  },
2600
2600
  author: {
2601
2601
  type: "object",
@@ -4712,7 +4712,7 @@ const CONTRACT = deepFreeze({
4712
4712
  // without saving it, through the new `device.pdfViewer` host slice. And
4713
4713
  // `createObjectURL` joins `bannedApis`: widgets reached for it to fake a
4714
4714
  // "print version" as a plain-text blob that never worked on native.
4715
- version: "1.136.0",
4715
+ version: "1.137.0",
4716
4716
  sharedTranslationKeys: SHARED_TRANSLATION_KEYS,
4717
4717
  hooks: HOOKS,
4718
4718
  primitives: PRIMITIVES,
package/dist/manifest.cjs CHANGED
@@ -196,7 +196,12 @@ function validateManifest(m) {
196
196
  );
197
197
 
198
198
  pushIf(errors, isNonEmptyString(manifest.icon), "manifest.icon must be a non-empty string");
199
- pushIf(errors, isNonEmptyString(manifest.description), "manifest.description must be a non-empty string");
199
+ // sc-9142: optional — a listing needs a name, not a blurb.
200
+ pushIf(
201
+ errors,
202
+ manifest.description === undefined || typeof manifest.description === "string",
203
+ "manifest.description must be a string when present",
204
+ );
200
205
 
201
206
  if (manifest.author === null || typeof manifest.author !== "object") {
202
207
  errors.push("manifest.author must be an object with a name");
package/dist/manifest.js CHANGED
@@ -242,7 +242,12 @@ function validateManifest(m) {
242
242
  );
243
243
 
244
244
  pushIf(errors, isNonEmptyString(manifest.icon), "manifest.icon must be a non-empty string");
245
- pushIf(errors, isNonEmptyString(manifest.description), "manifest.description must be a non-empty string");
245
+ // sc-9142: optional — a listing needs a name, not a blurb.
246
+ pushIf(
247
+ errors,
248
+ manifest.description === undefined || typeof manifest.description === "string",
249
+ "manifest.description must be a string when present",
250
+ );
246
251
 
247
252
  if (manifest.author === null || typeof manifest.author !== "object") {
248
253
  errors.push("manifest.author must be an object with a name");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colixsystems/widget-sdk",
3
- "version": "0.175.0",
3
+ "version": "0.176.0",
4
4
  "description": "Common widget interface for AppStudio. Implements WidgetManifest, WidgetContext, property schema, and helper hooks.",
5
5
  "homepage": "https://github.com/Colix-AB/AppStudio",
6
6
  "type": "module",