@dxos/protocols 0.9.0 → 0.9.1-main.c7dcc2e112

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.
Files changed (35) hide show
  1. package/dist/src/Config2.d.ts +91 -0
  2. package/dist/src/Config2.d.ts.map +1 -0
  3. package/dist/src/Config2.js +56 -0
  4. package/dist/src/Config2.js.map +1 -0
  5. package/dist/src/edge/edge.d.ts +82 -0
  6. package/dist/src/edge/edge.d.ts.map +1 -1
  7. package/dist/src/edge/edge.js +50 -0
  8. package/dist/src/edge/edge.js.map +1 -1
  9. package/dist/src/edge/registry.d.ts +231 -144
  10. package/dist/src/edge/registry.d.ts.map +1 -1
  11. package/dist/src/edge/registry.js +126 -87
  12. package/dist/src/edge/registry.js.map +1 -1
  13. package/dist/src/index.d.ts +1 -0
  14. package/dist/src/index.d.ts.map +1 -1
  15. package/dist/src/index.js +1 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/proto/gen/dxos/client/services.d.ts +162 -162
  18. package/dist/src/proto/gen/dxos/client/services.d.ts.map +1 -1
  19. package/dist/src/proto/gen/dxos/client/services.js.map +1 -1
  20. package/dist/src/proto/gen/google/protobuf.d.ts +27 -27
  21. package/dist/src/proto/gen/google/protobuf.d.ts.map +1 -1
  22. package/dist/src/proto/gen/google/protobuf.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +10 -9
  25. package/src/Config2.ts +68 -0
  26. package/src/edge/edge.ts +62 -0
  27. package/src/edge/registry.ts +142 -101
  28. package/src/index.ts +1 -0
  29. package/src/lexicons/org.dxos.experimental/README.md +29 -0
  30. package/src/lexicons/org.dxos.experimental/package.profile.json +87 -0
  31. package/src/lexicons/org.dxos.experimental/package.release.json +45 -0
  32. package/src/lexicons/org.dxos.experimental/publisher.profile.json +37 -0
  33. package/src/lexicons/org.dxos.experimental/publisher.verification.json +36 -0
  34. package/src/proto/gen/dxos/client/services.ts +162 -162
  35. package/src/proto/gen/google/protobuf.ts +27 -27
@@ -1,30 +1,11 @@
1
1
  import * as Schema from 'effect/Schema';
2
2
  /**
3
- * Hydrated plugin metadata, mirroring the @dxos/app-framework `Plugin.Meta` shape.
4
- *
5
- * Defined locally rather than imported from @dxos/app-framework to keep the protocols
6
- * package free of UI/runtime dependencies. Consumers can treat decoded values as
7
- * `Plugin.Meta` directly.
3
+ * A snapshot of a plugin's declared dependencies resolved to concrete installed versions at build
4
+ * time (`{ "@dxos/app-framework": "0.8.3", "react": "19.2.0", … }`). The host derives SDK
5
+ * compatibility from the subset it shares with the plugin (the externalized `@dxos/*` packages).
8
6
  */
9
- export declare const PluginMetaSchema: Schema.Struct<{
10
- id: Schema.filter<typeof Schema.String>;
11
- name: Schema.filter<typeof Schema.String>;
12
- description: Schema.optional<typeof Schema.String>;
13
- author: Schema.optional<typeof Schema.String>;
14
- homePage: Schema.optional<typeof Schema.String>;
15
- source: Schema.optional<typeof Schema.String>;
16
- screenshots: Schema.optional<Schema.Array$<typeof Schema.String>>;
17
- tags: Schema.optional<Schema.Array$<typeof Schema.String>>;
18
- icon: Schema.optional<typeof Schema.String>;
19
- iconHue: Schema.optional<typeof Schema.String>;
20
- }>;
21
- export type PluginMeta = Schema.Schema.Type<typeof PluginMetaSchema>;
22
- /**
23
- * Health signal the registry service attaches to a hydrated entry when a refresh fails.
24
- * Clients surface the appropriate badge or filter entries based on this field.
25
- */
26
- export declare const PluginHealthSchema: Schema.Literal<["ok", "release-missing", "manifest-invalid", "repo-unavailable"]>;
27
- export type PluginHealth = Schema.Schema.Type<typeof PluginHealthSchema>;
7
+ export declare const DependencyMapSchema: Schema.Record$<typeof Schema.String, typeof Schema.String>;
8
+ export type DependencyMap = Schema.Schema.Type<typeof DependencyMapSchema>;
28
9
  /**
29
10
  * Filename of the entry module every plugin must publish at the root of its bundle.
30
11
  * The host dynamic-imports `<manifest URL base>/index.mjs` directly — no per-plugin
@@ -42,16 +23,23 @@ export declare const PLUGIN_ENTRY_FILENAME = "index.mjs";
42
23
  * Paths in `assets` are relative to the manifest's URL.
43
24
  */
44
25
  export declare const PluginManifestSchema: Schema.Struct<{
45
- id: Schema.filter<typeof Schema.String>;
26
+ key: Schema.filter<typeof Schema.String>;
46
27
  name: Schema.filter<typeof Schema.String>;
47
28
  description: Schema.optional<typeof Schema.String>;
48
29
  author: Schema.optional<typeof Schema.String>;
49
30
  homePage: Schema.optional<typeof Schema.String>;
50
31
  source: Schema.optional<typeof Schema.String>;
51
- screenshots: Schema.optional<Schema.Array$<typeof Schema.String>>;
32
+ screenshots: Schema.optional<Schema.Array$<Schema.Struct<{
33
+ light: Schema.optional<typeof Schema.String>;
34
+ dark: Schema.optional<typeof Schema.String>;
35
+ }>>>;
52
36
  tags: Schema.optional<Schema.Array$<typeof Schema.String>>;
53
- icon: Schema.optional<typeof Schema.String>;
54
- iconHue: Schema.optional<typeof Schema.String>;
37
+ icon: Schema.optional<Schema.Struct<{
38
+ key: Schema.filter<typeof Schema.String>;
39
+ hue: Schema.optional<typeof Schema.String>;
40
+ }>>;
41
+ spec: Schema.optional<typeof Schema.String>;
42
+ dependsOn: Schema.optional<Schema.Array$<typeof Schema.String>>;
55
43
  /** Plugin version (semver). Sourced from the publishing project's `package.json`. */
56
44
  version: Schema.filter<typeof Schema.String>;
57
45
  /**
@@ -59,154 +47,253 @@ export declare const PluginManifestSchema: Schema.Struct<{
59
47
  * Must include {@link PLUGIN_ENTRY_FILENAME}; consumers verify on parse.
60
48
  */
61
49
  assets: Schema.filter<Schema.Array$<typeof Schema.String>>;
50
+ /** Declared dependencies resolved to installed versions at build time (SDK-compat source). */
51
+ dependencies: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
62
52
  }>;
63
53
  export type PluginManifest = Schema.Schema.Type<typeof PluginManifestSchema>;
64
54
  /**
65
- * Single hydrated plugin entry returned by the registry service.
55
+ * A single installable release of a plugin, projected from a `package.release`
56
+ * ATProto record.
66
57
  */
67
- export declare const PluginEntrySchema: Schema.Struct<{
68
- /** GitHub repository in `owner/name` form. Empty string for entries sourced from a `manifestUrl`. */
69
- repo: typeof Schema.String;
70
- /** Plugin metadata from the repo's latest-release `manifest.json`. */
71
- meta: Schema.Struct<{
72
- id: Schema.filter<typeof Schema.String>;
58
+ export declare const PluginReleaseSchema: Schema.Struct<{
59
+ /** Semver version string, e.g. `0.8.3`. */
60
+ version: Schema.filter<typeof Schema.String>;
61
+ /** URL the host dynamic-imports to install this specific version. */
62
+ moduleUrl: Schema.filter<typeof Schema.String>;
63
+ /**
64
+ * Dependencies this release was built against, resolved to installed versions. The host derives
65
+ * SDK compatibility from the `@dxos/*` subset to decide whether to offer this release.
66
+ */
67
+ dependencies: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
68
+ }>;
69
+ export type PluginRelease = Schema.Schema.Type<typeof PluginReleaseSchema>;
70
+ /**
71
+ * Verbatim content of a `package.profile` ATProto record. `key` is the record's rkey (a reverse-domain
72
+ * NSID), denormalized into the body. Version-independent identity + display metadata; provenance
73
+ * (`author`) is resolved separately from the publisher DID/handle.
74
+ */
75
+ export declare const PluginProfileSchema: Schema.Struct<{
76
+ /** Reverse-domain NSID — the plugin's globally-unique key and the `package.profile` rkey (e.g. `org.dxos.plugin.excalidraw`). */
77
+ key: Schema.filter<typeof Schema.String>;
78
+ /** Plugin display name. */
79
+ name: Schema.filter<typeof Schema.String>;
80
+ /** Short description of plugin functionality. */
81
+ description: Schema.optional<typeof Schema.String>;
82
+ /** Publisher's homepage or plugin documentation URL. */
83
+ homePage: Schema.optional<typeof Schema.String>;
84
+ /** Source repository URL. */
85
+ source: Schema.optional<typeof Schema.String>;
86
+ /** Tags to help categorize the plugin. */
87
+ tags: Schema.optional<Schema.Array$<typeof Schema.String>>;
88
+ /** Preview images — theme-keyed screenshot URLs shown on the plugin's card. */
89
+ screenshots: Schema.optional<Schema.Array$<Schema.Struct<{
90
+ light: Schema.optional<typeof Schema.String>;
91
+ dark: Schema.optional<typeof Schema.String>;
92
+ }>>>;
93
+ /** Icon identifier resolvable by `@ch-ui/icons` (e.g. `ph--sparkle--regular`), with an optional palette hue. */
94
+ icon: Schema.optional<Schema.Struct<{
95
+ key: Schema.filter<typeof Schema.String>;
96
+ hue: Schema.optional<typeof Schema.String>;
97
+ }>>;
98
+ /** Composer plugin ids this plugin depends on at runtime (NSIDs). Author-declared, version-independent. */
99
+ dependsOn: Schema.optional<Schema.Array$<typeof Schema.String>>;
100
+ /** Relative path inside the package to a bundled MDL spec (consumed by plugin-code). */
101
+ spec: Schema.optional<typeof Schema.String>;
102
+ }>;
103
+ export type PluginProfile = Schema.Schema.Type<typeof PluginProfileSchema>;
104
+ /**
105
+ * A single hydrated plugin entry returned by `GET /registry/plugins`.
106
+ *
107
+ * This is an indexer-assembled *view* — analogous to emdash's `PackageView` — projected
108
+ * from four ATProto record types: `package.profile`, `package.release`,
109
+ * `publisher.profile`, and `publisher.verification`. It is NOT a direct serialization
110
+ * of any single ATProto record.
111
+ *
112
+ * Design notes:
113
+ * - `profile.key` is required to be a valid NSID (e.g. `org.dxos.plugin.excalidraw`), making it
114
+ * the single identifier for both PDS addressing and the composer runtime plugin id.
115
+ * `DXN.make(profile.key, latestVersion)` reconstructs the canonical plugin DXN.
116
+ * - `releases` inlines all known versions, eliminating a separate versions round-trip for
117
+ * the version picker. Ordered newest-first.
118
+ * - `latestVersion` is a convenience pointer into `releases` indicating the recommended
119
+ * install target.
120
+ */
121
+ export declare const PluginViewSchema: Schema.Struct<{
122
+ /**
123
+ * `at://` URI of the source `package.profile` record.
124
+ * Globally unique and stable — never changes after the record is published.
125
+ */
126
+ uri: Schema.filter<typeof Schema.String>;
127
+ /** Publisher DID, e.g. `did:plc:abc…`. Cryptographic identity; never changes. */
128
+ did: Schema.filter<typeof Schema.String>;
129
+ /**
130
+ * Publisher AT Protocol handle at index time, e.g. `alice.bsky.social`.
131
+ * Display-only — handles can be reassigned; never use as a stable key.
132
+ */
133
+ handle: Schema.optional<typeof Schema.String>;
134
+ /** Unix ms when the indexer last assembled this entry. */
135
+ indexedAt: typeof Schema.Number;
136
+ /**
137
+ * Trust labels derived from curator `publisher.verification` records.
138
+ * An empty array means the entry has no verification signal.
139
+ */
140
+ labels: Schema.Array$<typeof Schema.String>;
141
+ profile: Schema.Struct<{
142
+ /** Reverse-domain NSID — the plugin's globally-unique key and the `package.profile` rkey (e.g. `org.dxos.plugin.excalidraw`). */
143
+ key: Schema.filter<typeof Schema.String>;
144
+ /** Plugin display name. */
73
145
  name: Schema.filter<typeof Schema.String>;
146
+ /** Short description of plugin functionality. */
74
147
  description: Schema.optional<typeof Schema.String>;
75
- author: Schema.optional<typeof Schema.String>;
148
+ /** Publisher's homepage or plugin documentation URL. */
76
149
  homePage: Schema.optional<typeof Schema.String>;
150
+ /** Source repository URL. */
77
151
  source: Schema.optional<typeof Schema.String>;
78
- screenshots: Schema.optional<Schema.Array$<typeof Schema.String>>;
152
+ /** Tags to help categorize the plugin. */
79
153
  tags: Schema.optional<Schema.Array$<typeof Schema.String>>;
80
- icon: Schema.optional<typeof Schema.String>;
81
- iconHue: Schema.optional<typeof Schema.String>;
154
+ /** Preview images — theme-keyed screenshot URLs shown on the plugin's card. */
155
+ screenshots: Schema.optional<Schema.Array$<Schema.Struct<{
156
+ light: Schema.optional<typeof Schema.String>;
157
+ dark: Schema.optional<typeof Schema.String>;
158
+ }>>>;
159
+ /** Icon identifier resolvable by `@ch-ui/icons` (e.g. `ph--sparkle--regular`), with an optional palette hue. */
160
+ icon: Schema.optional<Schema.Struct<{
161
+ key: Schema.filter<typeof Schema.String>;
162
+ hue: Schema.optional<typeof Schema.String>;
163
+ }>>;
164
+ /** Composer plugin ids this plugin depends on at runtime (NSIDs). Author-declared, version-independent. */
165
+ dependsOn: Schema.optional<Schema.Array$<typeof Schema.String>>;
166
+ /** Relative path inside the package to a bundled MDL spec (consumed by plugin-code). */
167
+ spec: Schema.optional<typeof Schema.String>;
82
168
  }>;
83
169
  /**
84
- * URL of the plugin's `manifest.json`. Composer's URL loader fetches this, eagerly caches
85
- * every declared asset via the platform `PluginAssetCache`, then dynamic-imports the entry.
86
- * The URL must be CORS-safe and have its declared assets reachable as siblings.
170
+ * All known releases for this package, ordered newest-first.
171
+ * Powers the version picker directly no separate endpoint needed.
172
+ */
173
+ releases: Schema.Array$<Schema.Struct<{
174
+ /** Semver version string, e.g. `0.8.3`. */
175
+ version: Schema.filter<typeof Schema.String>;
176
+ /** URL the host dynamic-imports to install this specific version. */
177
+ moduleUrl: Schema.filter<typeof Schema.String>;
178
+ /**
179
+ * Dependencies this release was built against, resolved to installed versions. The host derives
180
+ * SDK compatibility from the `@dxos/*` subset to decide whether to offer this release.
181
+ */
182
+ dependencies: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
183
+ }>>;
184
+ /**
185
+ * The latest (recommended) release version. Always references an entry in `releases`.
186
+ * Used by the host to determine whether an update is available.
87
187
  */
88
- moduleUrl: typeof Schema.String;
89
- /** Release tag the entry was resolved from (e.g. `v0.1.0`). Empty string for `manifestUrl` entries. */
90
- releaseTag: typeof Schema.String;
91
- /** Health signal set by the service when an entry fails to refresh. */
92
- health: Schema.Literal<["ok", "release-missing", "manifest-invalid", "repo-unavailable"]>;
93
- /** Unix ms when this entry was last successfully hydrated. */
94
- hydratedAt: typeof Schema.Number;
188
+ latestVersion: Schema.filter<typeof Schema.String>;
95
189
  }>;
96
- export type PluginEntry = Schema.Schema.Type<typeof PluginEntrySchema>;
190
+ export type PluginView = Schema.Schema.Type<typeof PluginViewSchema>;
97
191
  /**
98
192
  * Response body of `GET /registry/plugins`.
99
193
  */
100
194
  export declare const GetPluginsResponseBodySchema: Schema.Struct<{
101
- /** Wire-format schema version, pinned to 1. */
102
- version: Schema.Literal<[1]>;
103
- /** Hydrated entries. Order matches the order in the upstream catalog manifest. */
195
+ /** Wire-format schema version, pinned to 2. */
196
+ version: Schema.Literal<[2]>;
197
+ /** Hydrated entries. */
104
198
  plugins: Schema.Array$<Schema.Struct<{
105
- /** GitHub repository in `owner/name` form. Empty string for entries sourced from a `manifestUrl`. */
106
- repo: typeof Schema.String;
107
- /** Plugin metadata from the repo's latest-release `manifest.json`. */
108
- meta: Schema.Struct<{
109
- id: Schema.filter<typeof Schema.String>;
199
+ /**
200
+ * `at://` URI of the source `package.profile` record.
201
+ * Globally unique and stable — never changes after the record is published.
202
+ */
203
+ uri: Schema.filter<typeof Schema.String>;
204
+ /** Publisher DID, e.g. `did:plc:abc…`. Cryptographic identity; never changes. */
205
+ did: Schema.filter<typeof Schema.String>;
206
+ /**
207
+ * Publisher AT Protocol handle at index time, e.g. `alice.bsky.social`.
208
+ * Display-only — handles can be reassigned; never use as a stable key.
209
+ */
210
+ handle: Schema.optional<typeof Schema.String>;
211
+ /** Unix ms when the indexer last assembled this entry. */
212
+ indexedAt: typeof Schema.Number;
213
+ /**
214
+ * Trust labels derived from curator `publisher.verification` records.
215
+ * An empty array means the entry has no verification signal.
216
+ */
217
+ labels: Schema.Array$<typeof Schema.String>;
218
+ profile: Schema.Struct<{
219
+ /** Reverse-domain NSID — the plugin's globally-unique key and the `package.profile` rkey (e.g. `org.dxos.plugin.excalidraw`). */
220
+ key: Schema.filter<typeof Schema.String>;
221
+ /** Plugin display name. */
110
222
  name: Schema.filter<typeof Schema.String>;
223
+ /** Short description of plugin functionality. */
111
224
  description: Schema.optional<typeof Schema.String>;
112
- author: Schema.optional<typeof Schema.String>;
225
+ /** Publisher's homepage or plugin documentation URL. */
113
226
  homePage: Schema.optional<typeof Schema.String>;
227
+ /** Source repository URL. */
114
228
  source: Schema.optional<typeof Schema.String>;
115
- screenshots: Schema.optional<Schema.Array$<typeof Schema.String>>;
229
+ /** Tags to help categorize the plugin. */
116
230
  tags: Schema.optional<Schema.Array$<typeof Schema.String>>;
117
- icon: Schema.optional<typeof Schema.String>;
118
- iconHue: Schema.optional<typeof Schema.String>;
231
+ /** Preview images — theme-keyed screenshot URLs shown on the plugin's card. */
232
+ screenshots: Schema.optional<Schema.Array$<Schema.Struct<{
233
+ light: Schema.optional<typeof Schema.String>;
234
+ dark: Schema.optional<typeof Schema.String>;
235
+ }>>>;
236
+ /** Icon identifier resolvable by `@ch-ui/icons` (e.g. `ph--sparkle--regular`), with an optional palette hue. */
237
+ icon: Schema.optional<Schema.Struct<{
238
+ key: Schema.filter<typeof Schema.String>;
239
+ hue: Schema.optional<typeof Schema.String>;
240
+ }>>;
241
+ /** Composer plugin ids this plugin depends on at runtime (NSIDs). Author-declared, version-independent. */
242
+ dependsOn: Schema.optional<Schema.Array$<typeof Schema.String>>;
243
+ /** Relative path inside the package to a bundled MDL spec (consumed by plugin-code). */
244
+ spec: Schema.optional<typeof Schema.String>;
119
245
  }>;
120
246
  /**
121
- * URL of the plugin's `manifest.json`. Composer's URL loader fetches this, eagerly caches
122
- * every declared asset via the platform `PluginAssetCache`, then dynamic-imports the entry.
123
- * The URL must be CORS-safe and have its declared assets reachable as siblings.
247
+ * All known releases for this package, ordered newest-first.
248
+ * Powers the version picker directly no separate endpoint needed.
249
+ */
250
+ releases: Schema.Array$<Schema.Struct<{
251
+ /** Semver version string, e.g. `0.8.3`. */
252
+ version: Schema.filter<typeof Schema.String>;
253
+ /** URL the host dynamic-imports to install this specific version. */
254
+ moduleUrl: Schema.filter<typeof Schema.String>;
255
+ /**
256
+ * Dependencies this release was built against, resolved to installed versions. The host derives
257
+ * SDK compatibility from the `@dxos/*` subset to decide whether to offer this release.
258
+ */
259
+ dependencies: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.String>>;
260
+ }>>;
261
+ /**
262
+ * The latest (recommended) release version. Always references an entry in `releases`.
263
+ * Used by the host to determine whether an update is available.
124
264
  */
125
- moduleUrl: typeof Schema.String;
126
- /** Release tag the entry was resolved from (e.g. `v0.1.0`). Empty string for `manifestUrl` entries. */
127
- releaseTag: typeof Schema.String;
128
- /** Health signal set by the service when an entry fails to refresh. */
129
- health: Schema.Literal<["ok", "release-missing", "manifest-invalid", "repo-unavailable"]>;
130
- /** Unix ms when this entry was last successfully hydrated. */
131
- hydratedAt: typeof Schema.Number;
265
+ latestVersion: Schema.filter<typeof Schema.String>;
132
266
  }>>;
133
- /** Unix ms timestamp of the most recent successful refresh cycle. */
267
+ /** Unix ms timestamp of the most recent successful index cycle. */
134
268
  refreshedAt: typeof Schema.Number;
135
269
  }>;
136
270
  export type GetPluginsResponseBody = Schema.Schema.Type<typeof GetPluginsResponseBodySchema>;
137
- /**
138
- * A single published version of a plugin, as returned by the registry service's
139
- * versions endpoint. Sourced from the publishing project's GitHub releases.
140
- *
141
- * The host treats `tag` opaquely; ordering — newest first — is the service's
142
- * responsibility (typically reverse-chronological by release date).
143
- */
144
- export declare const PluginVersionSchema: Schema.Struct<{
145
- /** Release tag (e.g. `v0.1.21`). Stable identifier for this version. */
146
- tag: Schema.filter<typeof Schema.String>;
147
- /**
148
- * URL of this version's `manifest.json`. Matches the shape of {@link PluginEntrySchema.fields.moduleUrl}
149
- * but pinned to a specific release rather than the latest. Composer's URL loader fetches
150
- * this when the user installs / rolls back to this version.
151
- */
152
- moduleUrl: Schema.filter<typeof Schema.String>;
153
- /** Unix ms when the version was released. Optional — services that lack this signal can omit. */
154
- releasedAt: Schema.optional<typeof Schema.Number>;
271
+ /** Content of a `publisher.profile` ATProto record. Display metadata for a publisher DID. */
272
+ export declare const PublisherProfileSchema: Schema.Struct<{
273
+ displayName: Schema.filter<typeof Schema.String>;
274
+ bio: Schema.optional<typeof Schema.String>;
275
+ homepageUrl: Schema.optional<typeof Schema.String>;
276
+ contact: Schema.optional<typeof Schema.String>;
155
277
  }>;
156
- export type PluginVersion = Schema.Schema.Type<typeof PluginVersionSchema>;
278
+ export type PublisherProfile = Schema.Schema.Type<typeof PublisherProfileSchema>;
157
279
  /**
158
- * Response body of `GET /registry/plugins/:repo/versions`.
159
- *
160
- * `:repo` is the GitHub `owner/name` form, URL-encoded (so `/` is escaped).
161
- * Returns all hydratable releases for the repo, newest first; clients display them
162
- * in the version picker for install / roll-back. Unauthenticated; same surface area
163
- * as `GET /registry/plugins`.
280
+ * Content of a `publisher.verification` record written by the curator DID.
281
+ * Links a publisher DID to a trusted AT Protocol handle.
164
282
  */
165
- export declare const GetPluginVersionsResponseBodySchema: Schema.Struct<{
166
- /** Wire-format schema version, pinned to 1. */
167
- version: Schema.Literal<[1]>;
168
- /** Available versions for the requested repo, newest first. */
169
- versions: Schema.Array$<Schema.Struct<{
170
- /** Release tag (e.g. `v0.1.21`). Stable identifier for this version. */
171
- tag: Schema.filter<typeof Schema.String>;
172
- /**
173
- * URL of this version's `manifest.json`. Matches the shape of {@link PluginEntrySchema.fields.moduleUrl}
174
- * but pinned to a specific release rather than the latest. Composer's URL loader fetches
175
- * this when the user installs / rolls back to this version.
176
- */
177
- moduleUrl: Schema.filter<typeof Schema.String>;
178
- /** Unix ms when the version was released. Optional — services that lack this signal can omit. */
179
- releasedAt: Schema.optional<typeof Schema.Number>;
180
- }>>;
181
- /** Unix ms timestamp of the most recent successful refresh cycle for this repo. */
182
- refreshedAt: typeof Schema.Number;
283
+ export declare const PublisherVerificationSchema: Schema.Struct<{
284
+ subject: Schema.filter<typeof Schema.String>;
285
+ handle: Schema.filter<typeof Schema.String>;
286
+ displayName: Schema.filter<typeof Schema.String>;
287
+ createdAt: Schema.filter<typeof Schema.String>;
183
288
  }>;
184
- export type GetPluginVersionsResponseBody = Schema.Schema.Type<typeof GetPluginVersionsResponseBodySchema>;
185
- /**
186
- * A catalog entry. Two flavours:
187
- * - `{ repo }`: the registry service hydrates from the GitHub repo's latest release.
188
- * Used by the production catalog.
189
- * - `{ manifestUrl }`: the registry service skips GitHub and fetches the manifest directly.
190
- * Used for local development against an in-progress plugin (e.g. served by `vite preview`)
191
- * so authors can iterate without publishing a release.
192
- */
193
- export declare const RegistryEntrySchema: Schema.Union<[Schema.Struct<{
194
- repo: Schema.filter<typeof Schema.String>;
195
- }>, Schema.Struct<{
196
- manifestUrl: Schema.filter<typeof Schema.String>;
197
- }>]>;
198
- export type RegistryEntry = Schema.Schema.Type<typeof RegistryEntrySchema>;
199
- /**
200
- * Shape of the catalog manifest published in the upstream community-plugins repo.
201
- * Extra keys (e.g. `$schema`) are permitted.
202
- */
203
- export declare const RegistryManifestSchema: Schema.TypeLiteral<{
204
- version: Schema.Literal<[1]>;
205
- plugins: Schema.Array$<Schema.Union<[Schema.Struct<{
206
- repo: Schema.filter<typeof Schema.String>;
207
- }>, Schema.Struct<{
208
- manifestUrl: Schema.filter<typeof Schema.String>;
209
- }>]>>;
210
- }, readonly [Schema.Record$<typeof Schema.String, typeof Schema.Unknown>]>;
211
- export type RegistryManifest = Schema.Schema.Type<typeof RegistryManifestSchema>;
289
+ export type PublisherVerification = Schema.Schema.Type<typeof PublisherVerificationSchema>;
290
+ /** NSID constants for the four `org.dxos.experimental.*` record collections. */
291
+ export declare const NSID: {
292
+ readonly PackageProfile: 'org.dxos.experimental.package.profile';
293
+ readonly PackageRelease: 'org.dxos.experimental.package.release';
294
+ readonly PublisherProfile: 'org.dxos.experimental.publisher.profile';
295
+ readonly PublisherVerification: 'org.dxos.experimental.publisher.verification';
296
+ };
297
+ export type RegistryNsid = (typeof NSID)[keyof typeof NSID];
298
+ export declare const ALL_NSIDS: readonly RegistryNsid[];
212
299
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/edge/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;EAW3B,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,mFAAkF,CAAC;AAClH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;IAE/B,qFAAqF;;IAErF;;;OAGG;;EAEH,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,qGAAqG;;IAErG,sEAAsE;;;;;;;;;;;;;IAEtE;;;;OAIG;;IAEH,uGAAuG;;IAEvG,uEAAuE;;IAEvE,8DAA8D;;EAE9D,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,4BAA4B;IACvC,+CAA+C;;IAE/C,kFAAkF;;QAzBlF,qGAAqG;;QAErG,sEAAsE;;;;;;;;;;;;;QAEtE;;;;WAIG;;QAEH,uGAAuG;;QAEvG,uEAAuE;;QAEvE,8DAA8D;;;IAa9D,qEAAqE;;EAErE,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAE7F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB;IAC9B,wEAAwE;;IAExE;;;;OAIG;;IAEH,iGAAiG;;EAEjG,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,mCAAmC;IAC9C,+CAA+C;;IAE/C,+DAA+D;;QAxB/D,wEAAwE;;QAExE;;;;WAIG;;QAEH,iGAAiG;;;IAkBjG,mFAAmF;;EAEnF,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAE3G;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;IAG/B,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;0EAMlC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/edge/registry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,4DAA8D,CAAC;AAC/F,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;IAE/B,qFAAqF;;IAErF;;;OAGG;;IAEH,8FAA8F;;EAE9F,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAI7E;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,2CAA2C;;IAE3C,qEAAqE;;IAErE;;;OAGG;;EAEH,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,iIAAiI;;IAEjI,2BAA2B;;IAE3B,iDAAiD;;IAEjD,wDAAwD;;IAExD,6BAA6B;;IAE7B,0CAA0C;;IAE1C,+EAA+E;;;;;IAE/E,gHAAgH;;;;;IAEhH,2GAA2G;;IAE3G,wFAAwF;;EAExF,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB;IAE3B;;;OAGG;;IAEH,iFAAiF;;IAEjF;;;OAGG;;IAEH,0DAA0D;;IAE1D;;;OAGG;;;QA3DH,iIAAiI;;QAEjI,2BAA2B;;QAE3B,iDAAiD;;QAEjD,wDAAwD;;QAExD,6BAA6B;;QAE7B,0CAA0C;;QAE1C,+EAA+E;;;;;QAE/E,gHAAgH;;;;;QAEhH,2GAA2G;;QAE3G,wFAAwF;;;IAgDxF;;;OAGG;;QAvFH,2CAA2C;;QAE3C,qEAAqE;;QAErE;;;WAGG;;;IAkFH;;;OAGG;;EAEH,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,4BAA4B;IACvC,+CAA+C;;IAE/C,wBAAwB;;QA3CxB;;;WAGG;;QAEH,iFAAiF;;QAEjF;;;WAGG;;QAEH,0DAA0D;;QAE1D;;;WAGG;;;YA3DH,iIAAiI;;YAEjI,2BAA2B;;YAE3B,iDAAiD;;YAEjD,wDAAwD;;YAExD,6BAA6B;;YAE7B,0CAA0C;;YAE1C,+EAA+E;;;;;YAE/E,gHAAgH;;;;;YAEhH,2GAA2G;;YAE3G,wFAAwF;;;QAgDxF;;;WAGG;;YAvFH,2CAA2C;;YAE3C,qEAAqE;;YAErE;;;eAGG;;;QAkFH;;;WAGG;;;IAaH,mEAAmE;;EAEnE,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAI7F,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;;EAKtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAI3F,gFAAgF;AAChF,eAAO,MAAM,IAAI;aACf,cAAc,EAAE,uCAAuC;aACvD,cAAc,EAAE,uCAAuC;aACvD,gBAAgB,EAAE,yCAAyC;aAC3D,qBAAqB,EAAE,8CAA8C;CAC7D,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC;AAE5D,eAAO,MAAM,SAAS,EAAE,SAAS,YAAY,EAK5C,CAAC"}