@objectstack/metadata 2.0.6 → 3.0.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/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +22 -0
- package/dist/index.d.mts +140 -20
- package/dist/index.d.ts +140 -20
- package/dist/index.js +547 -47
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +547 -47
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +24 -1
- package/src/loaders/filesystem-loader.ts +2 -2
- package/src/loaders/memory-loader.ts +1 -1
- package/src/loaders/remote-loader.ts +1 -1
- package/src/metadata-manager.ts +680 -49
- package/src/metadata-service.test.ts +611 -0
- package/src/metadata.test.ts +26 -27
- package/src/node-metadata-manager.ts +1 -1
- package/src/plugin.ts +23 -14
- package/vitest.config.ts +2 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @objectstack/metadata@
|
|
2
|
+
> @objectstack/metadata@3.0.0 build /home/runner/work/spec/spec/packages/metadata
|
|
3
3
|
> tsup --config ../../tsup.config.ts
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[34mCJS[39m Build start
|
|
13
|
-
[
|
|
14
|
-
[
|
|
15
|
-
[
|
|
16
|
-
[
|
|
17
|
-
[
|
|
18
|
-
[
|
|
13
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m43.87 KB[39m
|
|
14
|
+
[32mESM[39m [1mdist/index.mjs.map [22m[32m88.95 KB[39m
|
|
15
|
+
[32mESM[39m ⚡️ Build success in 135ms
|
|
16
|
+
[32mCJS[39m [1mdist/index.js [22m[32m45.68 KB[39m
|
|
17
|
+
[32mCJS[39m [1mdist/index.js.map [22m[32m90.92 KB[39m
|
|
18
|
+
[32mCJS[39m ⚡️ Build success in 133ms
|
|
19
19
|
[34mDTS[39m Build start
|
|
20
|
-
[32mDTS[39m ⚡️ Build success in
|
|
21
|
-
[32mDTS[39m [1mdist/index.d.mts [22m[
|
|
22
|
-
[32mDTS[39m [1mdist/index.d.ts [22m[
|
|
20
|
+
[32mDTS[39m ⚡️ Build success in 12517ms
|
|
21
|
+
[32mDTS[39m [1mdist/index.d.mts [22m[32m14.80 KB[39m
|
|
22
|
+
[32mDTS[39m [1mdist/index.d.ts [22m[32m14.80 KB[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @objectstack/metadata
|
|
2
2
|
|
|
3
|
+
## 3.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Release v3.0.0 — unified version bump for all ObjectStack packages.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @objectstack/spec@3.0.0
|
|
13
|
+
- @objectstack/core@3.0.0
|
|
14
|
+
- @objectstack/types@3.0.0
|
|
15
|
+
|
|
16
|
+
## 2.0.7
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- Updated dependencies
|
|
21
|
+
- @objectstack/spec@2.0.7
|
|
22
|
+
- @objectstack/core@2.0.7
|
|
23
|
+
- @objectstack/types@2.0.7
|
|
24
|
+
|
|
3
25
|
## 2.0.6
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { MetadataFormat, MetadataLoaderContract, MetadataLoadOptions, MetadataLoadResult, MetadataStats, MetadataSaveOptions, MetadataSaveResult, MetadataWatchEvent, MetadataManagerConfig } from '@objectstack/spec/system';
|
|
2
2
|
export { MetadataCollectionInfo, MetadataExportOptions, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataSaveOptions, MetadataSaveResult, MetadataStats, MetadataWatchEvent } from '@objectstack/spec/system';
|
|
3
|
+
import { IMetadataService, MetadataWatchCallback, MetadataWatchHandle, MetadataExportOptions, MetadataImportOptions, MetadataImportResult, MetadataTypeInfo, ISchemaDriver } from '@objectstack/spec/contracts';
|
|
4
|
+
export { IMetadataService, MetadataImportResult, MetadataTypeInfo, MetadataWatchCallback, MetadataWatchHandle } from '@objectstack/spec/contracts';
|
|
5
|
+
import { MetadataTypeRegistryEntry, MetadataQuery, MetadataQueryResult, MetadataBulkResult, MetadataOverlay, MetadataValidationResult, MetadataDependency, MetadataPluginConfig } from '@objectstack/spec/kernel';
|
|
6
|
+
export { MetadataBulkResult, MetadataDependency, MetadataPluginConfig, MetadataPluginManifest, MetadataQuery, MetadataQueryResult, MetadataType, MetadataTypeRegistryEntry, MetadataValidationResult } from '@objectstack/spec/kernel';
|
|
3
7
|
import { Logger, Plugin, PluginContext } from '@objectstack/core';
|
|
4
8
|
import { z } from 'zod';
|
|
5
9
|
import { System } from '@objectstack/spec';
|
|
6
|
-
import { ISchemaDriver } from '@objectstack/spec/contracts';
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* Metadata Serializer Interface
|
|
@@ -125,63 +128,179 @@ interface MetadataLoader {
|
|
|
125
128
|
* Metadata Manager
|
|
126
129
|
*
|
|
127
130
|
* Main orchestrator for metadata loading, saving, and persistence.
|
|
131
|
+
* Implements the IMetadataService contract from @objectstack/spec.
|
|
128
132
|
* Browser-compatible (Pure).
|
|
129
133
|
*/
|
|
130
134
|
|
|
131
135
|
/**
|
|
132
|
-
* Watch callback function
|
|
136
|
+
* Watch callback function (legacy)
|
|
133
137
|
*/
|
|
134
138
|
type WatchCallback = (event: MetadataWatchEvent) => void | Promise<void>;
|
|
135
139
|
interface MetadataManagerOptions extends MetadataManagerConfig {
|
|
136
140
|
loaders?: MetadataLoader[];
|
|
137
141
|
}
|
|
138
142
|
/**
|
|
139
|
-
* Main metadata manager class
|
|
143
|
+
* Main metadata manager class.
|
|
144
|
+
* Implements IMetadataService contract for unified metadata management.
|
|
140
145
|
*/
|
|
141
|
-
declare class MetadataManager {
|
|
146
|
+
declare class MetadataManager implements IMetadataService {
|
|
142
147
|
private loaders;
|
|
143
148
|
protected serializers: Map<MetadataFormat, MetadataSerializer>;
|
|
144
149
|
protected logger: Logger;
|
|
145
150
|
protected watchCallbacks: Map<string, Set<WatchCallback>>;
|
|
146
151
|
protected config: MetadataManagerOptions;
|
|
152
|
+
private registry;
|
|
153
|
+
private overlays;
|
|
154
|
+
private typeRegistry;
|
|
155
|
+
private dependencies;
|
|
147
156
|
constructor(config: MetadataManagerOptions);
|
|
157
|
+
/**
|
|
158
|
+
* Set the type registry for metadata type discovery.
|
|
159
|
+
*/
|
|
160
|
+
setTypeRegistry(entries: MetadataTypeRegistryEntry[]): void;
|
|
148
161
|
/**
|
|
149
162
|
* Register a new metadata loader (data source)
|
|
150
163
|
*/
|
|
151
164
|
registerLoader(loader: MetadataLoader): void;
|
|
152
165
|
/**
|
|
153
|
-
*
|
|
154
|
-
* Iterates through registered loaders until found
|
|
166
|
+
* Register/save a metadata item by type
|
|
155
167
|
*/
|
|
156
|
-
|
|
168
|
+
register(type: string, name: string, data: unknown): Promise<void>;
|
|
157
169
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
170
|
+
* Get a metadata item by type and name.
|
|
171
|
+
* Checks in-memory registry first, then falls back to loaders.
|
|
160
172
|
*/
|
|
161
|
-
|
|
173
|
+
get(type: string, name: string): Promise<unknown | undefined>;
|
|
162
174
|
/**
|
|
163
|
-
*
|
|
175
|
+
* List all metadata items of a given type
|
|
164
176
|
*/
|
|
177
|
+
list(type: string): Promise<unknown[]>;
|
|
165
178
|
/**
|
|
166
|
-
*
|
|
179
|
+
* Unregister/remove a metadata item by type and name
|
|
167
180
|
*/
|
|
168
|
-
|
|
181
|
+
unregister(type: string, name: string): Promise<void>;
|
|
169
182
|
/**
|
|
170
|
-
* Check if metadata item exists
|
|
183
|
+
* Check if a metadata item exists
|
|
171
184
|
*/
|
|
172
185
|
exists(type: string, name: string): Promise<boolean>;
|
|
173
186
|
/**
|
|
174
|
-
* List all items of a type
|
|
187
|
+
* List all names of metadata items of a given type
|
|
175
188
|
*/
|
|
176
|
-
|
|
189
|
+
listNames(type: string): Promise<string[]>;
|
|
190
|
+
/**
|
|
191
|
+
* Convenience: get an object definition by name
|
|
192
|
+
*/
|
|
193
|
+
getObject(name: string): Promise<unknown | undefined>;
|
|
194
|
+
/**
|
|
195
|
+
* Convenience: list all object definitions
|
|
196
|
+
*/
|
|
197
|
+
listObjects(): Promise<unknown[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Unregister all metadata items from a specific package
|
|
200
|
+
*/
|
|
201
|
+
unregisterPackage(packageName: string): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Query metadata items with filtering, sorting, and pagination
|
|
204
|
+
*/
|
|
205
|
+
query(query: MetadataQuery): Promise<MetadataQueryResult>;
|
|
206
|
+
/**
|
|
207
|
+
* Register multiple metadata items in a single batch
|
|
208
|
+
*/
|
|
209
|
+
bulkRegister(items: Array<{
|
|
210
|
+
type: string;
|
|
211
|
+
name: string;
|
|
212
|
+
data: unknown;
|
|
213
|
+
}>, options?: {
|
|
214
|
+
continueOnError?: boolean;
|
|
215
|
+
validate?: boolean;
|
|
216
|
+
}): Promise<MetadataBulkResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Unregister multiple metadata items in a single batch
|
|
219
|
+
*/
|
|
220
|
+
bulkUnregister(items: Array<{
|
|
221
|
+
type: string;
|
|
222
|
+
name: string;
|
|
223
|
+
}>): Promise<MetadataBulkResult>;
|
|
224
|
+
private overlayKey;
|
|
225
|
+
/**
|
|
226
|
+
* Get the active overlay for a metadata item
|
|
227
|
+
*/
|
|
228
|
+
getOverlay(type: string, name: string, scope?: 'platform' | 'user'): Promise<MetadataOverlay | undefined>;
|
|
229
|
+
/**
|
|
230
|
+
* Save/update an overlay for a metadata item
|
|
231
|
+
*/
|
|
232
|
+
saveOverlay(overlay: MetadataOverlay): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Remove an overlay, reverting to the base definition
|
|
235
|
+
*/
|
|
236
|
+
removeOverlay(type: string, name: string, scope?: 'platform' | 'user'): Promise<void>;
|
|
237
|
+
/**
|
|
238
|
+
* Get the effective (merged) metadata after applying all overlays.
|
|
239
|
+
* Resolution order: system ← merge(platform) ← merge(user)
|
|
240
|
+
*/
|
|
241
|
+
getEffective(type: string, name: string): Promise<unknown | undefined>;
|
|
242
|
+
/**
|
|
243
|
+
* Watch for metadata changes (IMetadataService contract).
|
|
244
|
+
* Returns a handle for unsubscribing.
|
|
245
|
+
*/
|
|
246
|
+
watchService(type: string, callback: MetadataWatchCallback): MetadataWatchHandle;
|
|
247
|
+
/**
|
|
248
|
+
* Export metadata as a portable bundle
|
|
249
|
+
*/
|
|
250
|
+
exportMetadata(options?: MetadataExportOptions): Promise<unknown>;
|
|
251
|
+
/**
|
|
252
|
+
* Import metadata from a portable bundle
|
|
253
|
+
*/
|
|
254
|
+
importMetadata(data: unknown, options?: MetadataImportOptions): Promise<MetadataImportResult>;
|
|
255
|
+
/**
|
|
256
|
+
* Validate a metadata item against its type schema.
|
|
257
|
+
* Returns validation result with errors and warnings.
|
|
258
|
+
*/
|
|
259
|
+
validate(_type: string, data: unknown): Promise<MetadataValidationResult>;
|
|
260
|
+
/**
|
|
261
|
+
* Get all registered metadata types
|
|
262
|
+
*/
|
|
263
|
+
getRegisteredTypes(): Promise<string[]>;
|
|
264
|
+
/**
|
|
265
|
+
* Get detailed information about a metadata type
|
|
266
|
+
*/
|
|
267
|
+
getTypeInfo(type: string): Promise<MetadataTypeInfo | undefined>;
|
|
268
|
+
/**
|
|
269
|
+
* Get metadata items that this item depends on
|
|
270
|
+
*/
|
|
271
|
+
getDependencies(type: string, name: string): Promise<MetadataDependency[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Get metadata items that depend on this item
|
|
274
|
+
*/
|
|
275
|
+
getDependents(type: string, name: string): Promise<MetadataDependency[]>;
|
|
276
|
+
/**
|
|
277
|
+
* Register a dependency between two metadata items.
|
|
278
|
+
* Used internally to track cross-references.
|
|
279
|
+
* Duplicate dependencies (same source, target, and kind) are ignored.
|
|
280
|
+
*/
|
|
281
|
+
addDependency(dep: MetadataDependency): void;
|
|
282
|
+
/**
|
|
283
|
+
* Load a single metadata item from loaders.
|
|
284
|
+
* Iterates through registered loaders until found.
|
|
285
|
+
*/
|
|
286
|
+
load<T = any>(type: string, name: string, options?: MetadataLoadOptions): Promise<T | null>;
|
|
287
|
+
/**
|
|
288
|
+
* Load multiple metadata items from loaders.
|
|
289
|
+
* Aggregates results from all loaders.
|
|
290
|
+
*/
|
|
291
|
+
loadMany<T = any>(type: string, options?: MetadataLoadOptions): Promise<T[]>;
|
|
292
|
+
/**
|
|
293
|
+
* Save metadata item to a loader
|
|
294
|
+
*/
|
|
295
|
+
save<T = any>(type: string, name: string, data: T, options?: MetadataSaveOptions): Promise<MetadataSaveResult>;
|
|
177
296
|
/**
|
|
178
|
-
*
|
|
297
|
+
* Register a watch callback for metadata changes
|
|
179
298
|
*/
|
|
180
|
-
|
|
299
|
+
protected addWatchCallback(type: string, callback: WatchCallback): void;
|
|
181
300
|
/**
|
|
182
|
-
*
|
|
301
|
+
* Remove a watch callback for metadata changes
|
|
183
302
|
*/
|
|
184
|
-
|
|
303
|
+
protected removeWatchCallback(type: string, callback: WatchCallback): void;
|
|
185
304
|
/**
|
|
186
305
|
* Stop all watching
|
|
187
306
|
*/
|
|
@@ -192,6 +311,7 @@ declare class MetadataManager {
|
|
|
192
311
|
interface MetadataPluginOptions {
|
|
193
312
|
rootDir?: string;
|
|
194
313
|
watch?: boolean;
|
|
314
|
+
config?: Partial<MetadataPluginConfig>;
|
|
195
315
|
}
|
|
196
316
|
declare class MetadataPlugin implements Plugin {
|
|
197
317
|
name: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { MetadataFormat, MetadataLoaderContract, MetadataLoadOptions, MetadataLoadResult, MetadataStats, MetadataSaveOptions, MetadataSaveResult, MetadataWatchEvent, MetadataManagerConfig } from '@objectstack/spec/system';
|
|
2
2
|
export { MetadataCollectionInfo, MetadataExportOptions, MetadataFormat, MetadataImportOptions, MetadataLoadOptions, MetadataLoadResult, MetadataLoaderContract, MetadataManagerConfig, MetadataSaveOptions, MetadataSaveResult, MetadataStats, MetadataWatchEvent } from '@objectstack/spec/system';
|
|
3
|
+
import { IMetadataService, MetadataWatchCallback, MetadataWatchHandle, MetadataExportOptions, MetadataImportOptions, MetadataImportResult, MetadataTypeInfo, ISchemaDriver } from '@objectstack/spec/contracts';
|
|
4
|
+
export { IMetadataService, MetadataImportResult, MetadataTypeInfo, MetadataWatchCallback, MetadataWatchHandle } from '@objectstack/spec/contracts';
|
|
5
|
+
import { MetadataTypeRegistryEntry, MetadataQuery, MetadataQueryResult, MetadataBulkResult, MetadataOverlay, MetadataValidationResult, MetadataDependency, MetadataPluginConfig } from '@objectstack/spec/kernel';
|
|
6
|
+
export { MetadataBulkResult, MetadataDependency, MetadataPluginConfig, MetadataPluginManifest, MetadataQuery, MetadataQueryResult, MetadataType, MetadataTypeRegistryEntry, MetadataValidationResult } from '@objectstack/spec/kernel';
|
|
3
7
|
import { Logger, Plugin, PluginContext } from '@objectstack/core';
|
|
4
8
|
import { z } from 'zod';
|
|
5
9
|
import { System } from '@objectstack/spec';
|
|
6
|
-
import { ISchemaDriver } from '@objectstack/spec/contracts';
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* Metadata Serializer Interface
|
|
@@ -125,63 +128,179 @@ interface MetadataLoader {
|
|
|
125
128
|
* Metadata Manager
|
|
126
129
|
*
|
|
127
130
|
* Main orchestrator for metadata loading, saving, and persistence.
|
|
131
|
+
* Implements the IMetadataService contract from @objectstack/spec.
|
|
128
132
|
* Browser-compatible (Pure).
|
|
129
133
|
*/
|
|
130
134
|
|
|
131
135
|
/**
|
|
132
|
-
* Watch callback function
|
|
136
|
+
* Watch callback function (legacy)
|
|
133
137
|
*/
|
|
134
138
|
type WatchCallback = (event: MetadataWatchEvent) => void | Promise<void>;
|
|
135
139
|
interface MetadataManagerOptions extends MetadataManagerConfig {
|
|
136
140
|
loaders?: MetadataLoader[];
|
|
137
141
|
}
|
|
138
142
|
/**
|
|
139
|
-
* Main metadata manager class
|
|
143
|
+
* Main metadata manager class.
|
|
144
|
+
* Implements IMetadataService contract for unified metadata management.
|
|
140
145
|
*/
|
|
141
|
-
declare class MetadataManager {
|
|
146
|
+
declare class MetadataManager implements IMetadataService {
|
|
142
147
|
private loaders;
|
|
143
148
|
protected serializers: Map<MetadataFormat, MetadataSerializer>;
|
|
144
149
|
protected logger: Logger;
|
|
145
150
|
protected watchCallbacks: Map<string, Set<WatchCallback>>;
|
|
146
151
|
protected config: MetadataManagerOptions;
|
|
152
|
+
private registry;
|
|
153
|
+
private overlays;
|
|
154
|
+
private typeRegistry;
|
|
155
|
+
private dependencies;
|
|
147
156
|
constructor(config: MetadataManagerOptions);
|
|
157
|
+
/**
|
|
158
|
+
* Set the type registry for metadata type discovery.
|
|
159
|
+
*/
|
|
160
|
+
setTypeRegistry(entries: MetadataTypeRegistryEntry[]): void;
|
|
148
161
|
/**
|
|
149
162
|
* Register a new metadata loader (data source)
|
|
150
163
|
*/
|
|
151
164
|
registerLoader(loader: MetadataLoader): void;
|
|
152
165
|
/**
|
|
153
|
-
*
|
|
154
|
-
* Iterates through registered loaders until found
|
|
166
|
+
* Register/save a metadata item by type
|
|
155
167
|
*/
|
|
156
|
-
|
|
168
|
+
register(type: string, name: string, data: unknown): Promise<void>;
|
|
157
169
|
/**
|
|
158
|
-
*
|
|
159
|
-
*
|
|
170
|
+
* Get a metadata item by type and name.
|
|
171
|
+
* Checks in-memory registry first, then falls back to loaders.
|
|
160
172
|
*/
|
|
161
|
-
|
|
173
|
+
get(type: string, name: string): Promise<unknown | undefined>;
|
|
162
174
|
/**
|
|
163
|
-
*
|
|
175
|
+
* List all metadata items of a given type
|
|
164
176
|
*/
|
|
177
|
+
list(type: string): Promise<unknown[]>;
|
|
165
178
|
/**
|
|
166
|
-
*
|
|
179
|
+
* Unregister/remove a metadata item by type and name
|
|
167
180
|
*/
|
|
168
|
-
|
|
181
|
+
unregister(type: string, name: string): Promise<void>;
|
|
169
182
|
/**
|
|
170
|
-
* Check if metadata item exists
|
|
183
|
+
* Check if a metadata item exists
|
|
171
184
|
*/
|
|
172
185
|
exists(type: string, name: string): Promise<boolean>;
|
|
173
186
|
/**
|
|
174
|
-
* List all items of a type
|
|
187
|
+
* List all names of metadata items of a given type
|
|
175
188
|
*/
|
|
176
|
-
|
|
189
|
+
listNames(type: string): Promise<string[]>;
|
|
190
|
+
/**
|
|
191
|
+
* Convenience: get an object definition by name
|
|
192
|
+
*/
|
|
193
|
+
getObject(name: string): Promise<unknown | undefined>;
|
|
194
|
+
/**
|
|
195
|
+
* Convenience: list all object definitions
|
|
196
|
+
*/
|
|
197
|
+
listObjects(): Promise<unknown[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Unregister all metadata items from a specific package
|
|
200
|
+
*/
|
|
201
|
+
unregisterPackage(packageName: string): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Query metadata items with filtering, sorting, and pagination
|
|
204
|
+
*/
|
|
205
|
+
query(query: MetadataQuery): Promise<MetadataQueryResult>;
|
|
206
|
+
/**
|
|
207
|
+
* Register multiple metadata items in a single batch
|
|
208
|
+
*/
|
|
209
|
+
bulkRegister(items: Array<{
|
|
210
|
+
type: string;
|
|
211
|
+
name: string;
|
|
212
|
+
data: unknown;
|
|
213
|
+
}>, options?: {
|
|
214
|
+
continueOnError?: boolean;
|
|
215
|
+
validate?: boolean;
|
|
216
|
+
}): Promise<MetadataBulkResult>;
|
|
217
|
+
/**
|
|
218
|
+
* Unregister multiple metadata items in a single batch
|
|
219
|
+
*/
|
|
220
|
+
bulkUnregister(items: Array<{
|
|
221
|
+
type: string;
|
|
222
|
+
name: string;
|
|
223
|
+
}>): Promise<MetadataBulkResult>;
|
|
224
|
+
private overlayKey;
|
|
225
|
+
/**
|
|
226
|
+
* Get the active overlay for a metadata item
|
|
227
|
+
*/
|
|
228
|
+
getOverlay(type: string, name: string, scope?: 'platform' | 'user'): Promise<MetadataOverlay | undefined>;
|
|
229
|
+
/**
|
|
230
|
+
* Save/update an overlay for a metadata item
|
|
231
|
+
*/
|
|
232
|
+
saveOverlay(overlay: MetadataOverlay): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* Remove an overlay, reverting to the base definition
|
|
235
|
+
*/
|
|
236
|
+
removeOverlay(type: string, name: string, scope?: 'platform' | 'user'): Promise<void>;
|
|
237
|
+
/**
|
|
238
|
+
* Get the effective (merged) metadata after applying all overlays.
|
|
239
|
+
* Resolution order: system ← merge(platform) ← merge(user)
|
|
240
|
+
*/
|
|
241
|
+
getEffective(type: string, name: string): Promise<unknown | undefined>;
|
|
242
|
+
/**
|
|
243
|
+
* Watch for metadata changes (IMetadataService contract).
|
|
244
|
+
* Returns a handle for unsubscribing.
|
|
245
|
+
*/
|
|
246
|
+
watchService(type: string, callback: MetadataWatchCallback): MetadataWatchHandle;
|
|
247
|
+
/**
|
|
248
|
+
* Export metadata as a portable bundle
|
|
249
|
+
*/
|
|
250
|
+
exportMetadata(options?: MetadataExportOptions): Promise<unknown>;
|
|
251
|
+
/**
|
|
252
|
+
* Import metadata from a portable bundle
|
|
253
|
+
*/
|
|
254
|
+
importMetadata(data: unknown, options?: MetadataImportOptions): Promise<MetadataImportResult>;
|
|
255
|
+
/**
|
|
256
|
+
* Validate a metadata item against its type schema.
|
|
257
|
+
* Returns validation result with errors and warnings.
|
|
258
|
+
*/
|
|
259
|
+
validate(_type: string, data: unknown): Promise<MetadataValidationResult>;
|
|
260
|
+
/**
|
|
261
|
+
* Get all registered metadata types
|
|
262
|
+
*/
|
|
263
|
+
getRegisteredTypes(): Promise<string[]>;
|
|
264
|
+
/**
|
|
265
|
+
* Get detailed information about a metadata type
|
|
266
|
+
*/
|
|
267
|
+
getTypeInfo(type: string): Promise<MetadataTypeInfo | undefined>;
|
|
268
|
+
/**
|
|
269
|
+
* Get metadata items that this item depends on
|
|
270
|
+
*/
|
|
271
|
+
getDependencies(type: string, name: string): Promise<MetadataDependency[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Get metadata items that depend on this item
|
|
274
|
+
*/
|
|
275
|
+
getDependents(type: string, name: string): Promise<MetadataDependency[]>;
|
|
276
|
+
/**
|
|
277
|
+
* Register a dependency between two metadata items.
|
|
278
|
+
* Used internally to track cross-references.
|
|
279
|
+
* Duplicate dependencies (same source, target, and kind) are ignored.
|
|
280
|
+
*/
|
|
281
|
+
addDependency(dep: MetadataDependency): void;
|
|
282
|
+
/**
|
|
283
|
+
* Load a single metadata item from loaders.
|
|
284
|
+
* Iterates through registered loaders until found.
|
|
285
|
+
*/
|
|
286
|
+
load<T = any>(type: string, name: string, options?: MetadataLoadOptions): Promise<T | null>;
|
|
287
|
+
/**
|
|
288
|
+
* Load multiple metadata items from loaders.
|
|
289
|
+
* Aggregates results from all loaders.
|
|
290
|
+
*/
|
|
291
|
+
loadMany<T = any>(type: string, options?: MetadataLoadOptions): Promise<T[]>;
|
|
292
|
+
/**
|
|
293
|
+
* Save metadata item to a loader
|
|
294
|
+
*/
|
|
295
|
+
save<T = any>(type: string, name: string, data: T, options?: MetadataSaveOptions): Promise<MetadataSaveResult>;
|
|
177
296
|
/**
|
|
178
|
-
*
|
|
297
|
+
* Register a watch callback for metadata changes
|
|
179
298
|
*/
|
|
180
|
-
|
|
299
|
+
protected addWatchCallback(type: string, callback: WatchCallback): void;
|
|
181
300
|
/**
|
|
182
|
-
*
|
|
301
|
+
* Remove a watch callback for metadata changes
|
|
183
302
|
*/
|
|
184
|
-
|
|
303
|
+
protected removeWatchCallback(type: string, callback: WatchCallback): void;
|
|
185
304
|
/**
|
|
186
305
|
* Stop all watching
|
|
187
306
|
*/
|
|
@@ -192,6 +311,7 @@ declare class MetadataManager {
|
|
|
192
311
|
interface MetadataPluginOptions {
|
|
193
312
|
rootDir?: string;
|
|
194
313
|
watch?: boolean;
|
|
314
|
+
config?: Partial<MetadataPluginConfig>;
|
|
195
315
|
}
|
|
196
316
|
declare class MetadataPlugin implements Plugin {
|
|
197
317
|
name: string;
|