@tx5dr/contracts 1.2.0 → 1.2.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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plugin-market.schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-market.schema.test.d.ts","sourceRoot":"","sources":["../../../src/schema/__tests__/plugin-market.schema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,77 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { PluginMarketCatalogResponseSchema, PluginMarketCatalogSchema, PluginMarketChannelSchema, PluginSourceSchema, } from '../../index.js';
3
+ describe('plugin market schema', () => {
4
+ it('accepts a valid stable catalog', () => {
5
+ const catalog = PluginMarketCatalogSchema.parse({
6
+ schemaVersion: 1,
7
+ generatedAt: '2026-04-22T12:00:00.000Z',
8
+ channel: 'stable',
9
+ plugins: [
10
+ {
11
+ name: 'heartbeat-demo',
12
+ title: 'Heartbeat Demo',
13
+ description: 'Example timer and quick-action plugin.',
14
+ locales: {
15
+ en: {
16
+ pluginName: 'Heartbeat Demo',
17
+ pluginDescription: 'Example timer and quick-action plugin.',
18
+ },
19
+ zh: {
20
+ pluginName: '心跳演示',
21
+ pluginDescription: '定时器与快捷操作演示插件。',
22
+ },
23
+ },
24
+ latestVersion: '1.2.3',
25
+ minHostVersion: '1.0.0',
26
+ author: 'TX-5DR',
27
+ license: 'GPL-3.0-only',
28
+ repository: 'https://github.com/boybook/tx-5dr-plugins',
29
+ homepage: 'https://tx5dr.example/plugins/heartbeat-demo',
30
+ categories: ['demo'],
31
+ keywords: ['timer', 'example'],
32
+ permissions: [],
33
+ screenshots: [
34
+ {
35
+ src: 'https://cdn.example.com/heartbeat-demo/cover.png',
36
+ alt: 'Heartbeat Demo screenshot',
37
+ },
38
+ ],
39
+ artifactUrl: 'https://cdn.example.com/plugins/heartbeat-demo-1.2.3.zip',
40
+ sha256: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
41
+ size: 12345,
42
+ publishedAt: '2026-04-22T12:00:00.000Z',
43
+ },
44
+ ],
45
+ });
46
+ expect(catalog.channel).toBe('stable');
47
+ expect(catalog.plugins[0]?.name).toBe('heartbeat-demo');
48
+ });
49
+ it('rejects unsupported channels', () => {
50
+ expect(() => PluginMarketChannelSchema.parse('beta')).toThrow();
51
+ });
52
+ it('accepts the route response envelope', () => {
53
+ const response = PluginMarketCatalogResponseSchema.parse({
54
+ sourceUrl: 'https://tx5dr.oss-cn-hangzhou.aliyuncs.com/tx-5dr/plugins/market/stable/index.json',
55
+ catalog: {
56
+ schemaVersion: 1,
57
+ generatedAt: '2026-04-22T12:00:00.000Z',
58
+ channel: 'stable',
59
+ plugins: [],
60
+ },
61
+ });
62
+ expect(response.catalog.plugins).toHaveLength(0);
63
+ });
64
+ it('accepts marketplace plugin source metadata', () => {
65
+ const source = PluginSourceSchema.parse({
66
+ kind: 'marketplace',
67
+ version: '1.2.3',
68
+ channel: 'nightly',
69
+ artifactUrl: 'https://dl.tx5dr.com/plugins/market/nightly/heartbeat-demo.zip',
70
+ sha256: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
71
+ installedAt: 1_777_000_000_000,
72
+ });
73
+ expect(source.kind).toBe('marketplace');
74
+ expect(source.channel).toBe('nightly');
75
+ });
76
+ });
77
+ //# sourceMappingURL=plugin-market.schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-market.schema.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/plugin-market.schema.test.ts"],"names":[],"mappings":"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"}