@zaflun/lumio-extension-types 0.4.0 → 0.4.1

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 ADDED
@@ -0,0 +1,119 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@zaflun/lumio-extension-types` are documented here.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## 0.4.1
9
+
10
+ ### Added
11
+
12
+ - **`CHANGELOG.md` in the package** — the npm tarball ships this changelog.
13
+
14
+ ### Changed
15
+
16
+ - **zod `^4.6.7`** — the `zod` dependency range moves up from `^4.3.6`. The
17
+ exported schemas and types are unchanged.
18
+
19
+ ## 0.4.0
20
+
21
+ ### Removed
22
+
23
+ - **The `interactive` target** — `lumioExtensionConfigBaseSchema` accepts
24
+ only `editor` and `layer` in `targets`; a config that lists `interactive`
25
+ no longer validates. Viewers interact with an extension through chat
26
+ commands and channel point rewards handled by a bot module. Breaking.
27
+
28
+ ## 0.3.3
29
+
30
+ ### Changed
31
+
32
+ - **Stricter `sounds` entries** — a sound's `file` is 1 to 255 characters and
33
+ may not contain `..` or `\` or start with `/` ("Invalid sound file path");
34
+ `name` is 1 to 255 characters. A config declares at most 200 sounds.
35
+ - **The config schema documents its layer** — `lumioExtensionConfigBaseSchema`
36
+ describes the stored, snake_case extension config. The `lumio.config.json`
37
+ that `lumio init` writes and `lumio deploy` uploads is camelCase and is
38
+ validated by the server, not by this schema. The enum lists
39
+ (`VALID_PLATFORMS`, `VALID_ROLES`, `NODE_TYPES`, `TRIGGER_MODES`) are
40
+ casing-agnostic and apply to both.
41
+
42
+ ### Removed
43
+
44
+ - **`trovo` in `VALID_PLATFORMS`** — the platform list is `twitch`,
45
+ `youtube`, `kick` and `discord`. A bot module that lists `trovo` in
46
+ `platforms` no longer validates. Breaking.
47
+
48
+ ## 0.3.2
49
+
50
+ ### Added
51
+
52
+ - **Automation nodes** — the `automation_node` extension category, with
53
+ `node_type` (`NODE_TYPES`: `trigger`, `action`, `logic`) and a `node` object
54
+ (`automationNodeSchema`: `input_schema`, `output_schema`, `trigger_mode`,
55
+ `poll_interval_seconds` 10 to 300, `icon`, `color`). An automation node must
56
+ set `node_type`, `node` and `server: true` and include `editor` in
57
+ `targets`; a trigger node must set `node.trigger_mode`, and only trigger
58
+ nodes may set `trigger_mode` or `poll_interval_seconds`. Other categories
59
+ may not set `node_type` or `node`.
60
+ - **Bundled sounds** — `sounds` in the extension config, each entry
61
+ `{ file, name, default_volume? }` (`lumioExtensionSoundSchema`,
62
+ `LumioExtensionSound`), with `default_volume` from 0 to 1.
63
+ - **More config fields** — `icon`, `default_install` and `designer_schema`
64
+ on the extension config. `default_install` is reserved for system
65
+ extensions: a config that sets it fails validation.
66
+ - **More config field types** — `textarea`, `slider`, `font`, `icon`,
67
+ `image`, `sound`, `multiselect`, `group`, `divider`, `info`, `channel`,
68
+ `designer` and `presets`. A field can carry `min`, `max`, `step`,
69
+ `placeholder`, `rows`, `unit`, `collapsed`, `visible_when`, `content`,
70
+ `multiple`, and nested `fields` for groups.
71
+ - **Developer profile and team fields** — `description`, `github_url`,
72
+ `website_url` and `avatar_key` on profiles and teams, plus `slug` on
73
+ profiles. New `developerTeamMemberSchema` / `DeveloperTeamMember` and
74
+ `developerTeamPermissionSchema` / `DeveloperTeamPermission`.
75
+
76
+ ### Changed
77
+
78
+ - **`default_value` is optional** on a config field.
79
+ - **Team roles are objects** — `developerTeamRoleSchema` describes a team
80
+ role record (`id`, `team_id`, `name`, `slug`, `is_default`, `is_system`,
81
+ `color`, counts, timestamps) instead of the `owner` / `admin` / `member`
82
+ enum, because team roles are defined per team. Breaking.
83
+
84
+ ### Removed
85
+
86
+ - **`DEVELOPER_TEAM_ROLES`** — fetch a team's roles from the API instead.
87
+ Breaking.
88
+
89
+ ## 0.3.0
90
+
91
+ ### Added
92
+
93
+ - **Bot module configs** — `platforms` (`VALID_PLATFORMS`) and `triggers` on
94
+ the extension config. `triggers` holds `commands` (up to 20; name, cooldowns,
95
+ `min_role` from `VALID_ROLES`, Discord options), `keywords`, `patterns`,
96
+ `events` and `timers` (interval of at least 60 seconds). New exports:
97
+ `triggerCommandSchema`, `triggerTimerSchema`, `triggerConfigSchema`,
98
+ `TriggerConfig`, `TriggerCommand`.
99
+ - **`lumioExtensionConfigBaseSchema`** — the object schema without the
100
+ cross-field rules, exported next to `lumioExtensionConfigSchema`.
101
+
102
+ ### Changed
103
+
104
+ - **`targets` is optional** and defaults to `[]`. Every category except
105
+ `bot_module` still needs at least one target.
106
+ - **Bot module rules** — only `bot_module` extensions may set `triggers`, and
107
+ a `bot_module` must list at least one platform. A `bot_module` config
108
+ without `platforms` no longer validates. Breaking.
109
+
110
+ ## 0.1.0
111
+
112
+ ### Added
113
+
114
+ - **Initial release** — zod schemas and types for the Lumio extension store
115
+ (`Extension`, `ExtensionVersion`, `ExtensionInstall`, `ExtensionReview`),
116
+ the extension config (`lumioExtensionConfigSchema`,
117
+ `LumioExtensionConfig`, config fields and pricing) and developer accounts
118
+ (`DeveloperProfile`, `DeveloperTeam`), plus the category, visibility,
119
+ status and developer enums.
package/dist/index.d.ts CHANGED
@@ -580,4 +580,5 @@ declare const developerTeamPermissionSchema: z.ZodObject<{
580
580
  }, z.core.$strip>;
581
581
  type DeveloperTeamPermission = z.infer<typeof developerTeamPermissionSchema>;
582
582
 
583
- export { type AutomationNode, type AutomationNodeType, CONFIG_FIELD_TYPES, type ConfigField, type ConfigSchema, DEVELOPER_TYPES, DEVELOPER_VERIFICATION_STATUSES, type DeveloperProfile, type DeveloperTeam, type DeveloperTeamMember, type DeveloperTeamPermission, type DeveloperTeamRole, type DeveloperType, type DeveloperVerificationStatus, EXTENSION_CATEGORIES, EXTENSION_STATUSES, EXTENSION_VISIBILITIES, type Extension, type ExtensionCategory, type ExtensionInstall, type ExtensionPricing, type ExtensionReview, type ExtensionStatus, type ExtensionVersion, type ExtensionVisibility, type LumioExtensionConfig, type LumioExtensionSound, NODE_TYPES, PRICING_TYPES, type PricingType, TRIGGER_MODES, type TriggerCommand, type TriggerConfig, type TriggerMode, VALID_PLATFORMS, VALID_ROLES, VERSION_STATUSES, type VersionStatus, automationNodeSchema, configFieldSchema, configSchemaSchema, developerProfileSchema, developerTeamMemberSchema, developerTeamPermissionSchema, developerTeamRoleSchema, developerTeamSchema, developerTypeSchema, developerVerificationStatusSchema, extensionCategorySchema, extensionInstallSchema, extensionPricingSchema, extensionReviewSchema, extensionSchema, extensionStatusSchema, extensionVersionSchema, extensionVisibilitySchema, lumioExtensionConfigBaseSchema, lumioExtensionConfigSchema, lumioExtensionSoundSchema, nodeTypeSchema, pricingTypeSchema, triggerCommandSchema, triggerConfigSchema, triggerModeSchema, triggerTimerSchema, versionStatusSchema };
583
+ export { CONFIG_FIELD_TYPES, DEVELOPER_TYPES, DEVELOPER_VERIFICATION_STATUSES, EXTENSION_CATEGORIES, EXTENSION_STATUSES, EXTENSION_VISIBILITIES, NODE_TYPES, PRICING_TYPES, TRIGGER_MODES, VALID_PLATFORMS, VALID_ROLES, VERSION_STATUSES, automationNodeSchema, configFieldSchema, configSchemaSchema, developerProfileSchema, developerTeamMemberSchema, developerTeamPermissionSchema, developerTeamRoleSchema, developerTeamSchema, developerTypeSchema, developerVerificationStatusSchema, extensionCategorySchema, extensionInstallSchema, extensionPricingSchema, extensionReviewSchema, extensionSchema, extensionStatusSchema, extensionVersionSchema, extensionVisibilitySchema, lumioExtensionConfigBaseSchema, lumioExtensionConfigSchema, lumioExtensionSoundSchema, nodeTypeSchema, pricingTypeSchema, triggerCommandSchema, triggerConfigSchema, triggerModeSchema, triggerTimerSchema, versionStatusSchema };
584
+ export type { AutomationNode, AutomationNodeType, ConfigField, ConfigSchema, DeveloperProfile, DeveloperTeam, DeveloperTeamMember, DeveloperTeamPermission, DeveloperTeamRole, DeveloperType, DeveloperVerificationStatus, Extension, ExtensionCategory, ExtensionInstall, ExtensionPricing, ExtensionReview, ExtensionStatus, ExtensionVersion, ExtensionVisibility, LumioExtensionConfig, LumioExtensionSound, PricingType, TriggerCommand, TriggerConfig, TriggerMode, VersionStatus };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaflun/lumio-extension-types",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "Shared TypeScript types for Lumio extensions, store, and config",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,14 +12,15 @@
12
12
  }
13
13
  },
14
14
  "files": [
15
- "dist"
15
+ "dist",
16
+ "CHANGELOG.md"
16
17
  ],
17
18
  "dependencies": {
18
- "zod": "^4.3.6"
19
+ "zod": "^4.6.7"
19
20
  },
20
21
  "devDependencies": {
21
22
  "typescript": "^6.0.2",
22
- "tsup": "^8.4.0"
23
+ "tsup": "^9.0.0"
23
24
  },
24
25
  "publishConfig": {
25
26
  "access": "public"