first commit

This commit is contained in:
2026-06-09 18:35:55 -03:00
commit 3581e221d0
448 changed files with 519709 additions and 0 deletions
+4
View File
@@ -0,0 +1,4 @@
import type { HttpClient } from "../http.js";
import type { FetchMetadataCatalogOptions, MetadataCatalog } from "./types.js";
export declare function fetchMetadataCatalog(http: HttpClient, options?: FetchMetadataCatalogOptions): Promise<MetadataCatalog>;
//# sourceMappingURL=catalog.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/metadata/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAGV,2BAA2B,EAE3B,eAAe,EAEhB,MAAM,YAAY,CAAC;AAqHpB,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
+103
View File
@@ -0,0 +1,103 @@
import { ClarizenApiError } from "../errors.js";
import { ENDPOINTS } from "../endpoints.js";
import { filterStandardTypeNames, sanitizeEntityDescription, } from "./filter.js";
const DEFAULT_FLAGS = ["fields", "relations"];
const DEFAULT_BATCH_SIZE = 20;
const DESCRIBE_METADATA_PATH = ENDPOINTS.find((e) => e.namespace === "metadata" && e.operation === "DescribeMetadata")?.path ?? "/V2.0/services/metadata/describeMetadata";
const LIST_ENTITIES_PATH = ENDPOINTS.find((e) => e.namespace === "metadata" && e.operation === "ListEntities")?.path ?? "/V2.0/services/metadata/listEntities";
function describeMetadataQuery(typeNames, flags) {
const query = {
flags,
};
if (typeNames !== undefined && typeNames.length > 0) {
query.typeNames = typeNames;
}
return query;
}
async function listEntities(http) {
const result = await http.request(LIST_ENTITIES_PATH, {
method: "GET",
});
return result.typeNames ?? [];
}
async function describeMetadata(http, typeNames, flags) {
const result = await http.request(DESCRIBE_METADATA_PATH, {
method: "GET",
query: describeMetadataQuery(typeNames, flags),
});
const entries = [];
for (const desc of result.entityDescriptions ?? []) {
const entry = sanitizeEntityDescription(desc);
if (entry) {
entries.push(entry);
}
}
return entries;
}
function chunk(items, size) {
const chunks = [];
for (let i = 0; i < items.length; i += size) {
chunks.push(items.slice(i, i + size));
}
return chunks;
}
function mergeEntries(batches) {
const byType = new Map();
for (const batch of batches) {
for (const entry of batch) {
byType.set(entry.typeName, entry);
}
}
return [...byType.values()].sort((a, b) => a.typeName.localeCompare(b.typeName));
}
function needsBatchedFetch(error) {
if (error instanceof ClarizenApiError) {
return (error.errorCode === "MissingArgument" ||
error.errorCode === "InvalidArgument");
}
if (error instanceof Error) {
const msg = error.message.toLowerCase();
return msg.includes("missing") || msg.includes("typenames");
}
return false;
}
async function fetchBatched(http, flags, batchSize, log) {
log("listEntities + batched describeMetadata...");
const rawNames = await listEntities(http);
const typeNames = filterStandardTypeNames(rawNames);
log(` ${typeNames.length} standard entities (${rawNames.length} total)`);
const batches = chunk(typeNames, batchSize);
const batchResults = [];
for (let i = 0; i < batches.length; i++) {
const batch = batches[i];
log(` batch ${i + 1}/${batches.length} (${batch.length} types)...`);
batchResults.push(await describeMetadata(http, batch, flags));
}
return mergeEntries(batchResults);
}
export async function fetchMetadataCatalog(http, options = {}) {
const flags = options.flags ?? DEFAULT_FLAGS;
const batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
const log = options.onProgress ?? (() => { });
let entries;
try {
log("describeMetadata (all entities)...");
entries = await describeMetadata(http, undefined, flags);
if (entries.length === 0) {
entries = await fetchBatched(http, flags, batchSize, log);
}
}
catch (error) {
if (needsBatchedFetch(error)) {
entries = await fetchBatched(http, flags, batchSize, log);
}
else {
throw error;
}
}
return {
fetchedAt: new Date().toISOString(),
entities: entries,
};
}
//# sourceMappingURL=catalog.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/metadata/catalog.ts"],"names":[],"mappings":"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"}
+7
View File
@@ -0,0 +1,7 @@
import type { EntityDescription } from "../clarizen-api-types.js";
import type { EntityMetadataEntry } from "./types.js";
/** Standard (non-custom) metadata names exclude C_ and R_ segments. */
export declare function isStandardMetadataName(name: string): boolean;
export declare function filterStandardTypeNames(typeNames: string[]): string[];
export declare function sanitizeEntityDescription(desc: EntityDescription): EntityMetadataEntry | null;
//# sourceMappingURL=filter.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../src/metadata/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,uEAAuE;AACvE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAErE;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,iBAAiB,GACtB,mBAAmB,GAAG,IAAI,CAuB5B"}
+24
View File
@@ -0,0 +1,24 @@
/** Standard (non-custom) metadata names exclude C_ and R_ segments. */
export function isStandardMetadataName(name) {
return !name.includes("C_") && !name.includes("R_");
}
export function filterStandardTypeNames(typeNames) {
return typeNames.filter(isStandardMetadataName);
}
export function sanitizeEntityDescription(desc) {
const typeName = desc.typeName;
if (!typeName || !isStandardMetadataName(typeName)) {
return null;
}
const fields = (desc.fields ?? []).filter((f) => f.name && isStandardMetadataName(f.name));
const relations = (desc.relations ?? []).filter((r) => r.name &&
isStandardMetadataName(r.name) &&
(!r.relatedTypeName || isStandardMetadataName(r.relatedTypeName)));
return {
typeName,
label: desc.label,
fields,
relations,
};
}
//# sourceMappingURL=filter.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../src/metadata/filter.ts"],"names":[],"mappings":"AAGA,uEAAuE;AACvE,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAmB;IACzD,OAAO,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,QAAQ,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAChD,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI;QACN,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CACpE,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM;QACN,SAAS;KACV,CAAC;AACJ,CAAC"}
+3
View File
@@ -0,0 +1,3 @@
import type { MetadataCatalog } from "./types.js";
export declare function generateMetadataTypesFile(catalog: MetadataCatalog): string;
//# sourceMappingURL=generate-types.d.ts.map
@@ -0,0 +1 @@
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../src/metadata/generate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CA2D1E"}
+61
View File
@@ -0,0 +1,61 @@
function escapeString(value) {
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
}
function objectKey(name) {
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name) ? name : JSON.stringify(name);
}
export function generateMetadataTypesFile(catalog) {
const entityTypes = catalog.entities.map((e) => e.typeName);
const fieldsLines = catalog.entities.map((e) => {
const names = e.fields
.map((f) => f.name)
.filter((n) => Boolean(n));
const literals = names.map((n) => `"${escapeString(n)}"`).join(", ");
return ` ${objectKey(e.typeName)}: [${literals}] as const`;
});
const relationsLines = catalog.entities.map((e) => {
const rels = e.relations
.filter((r) => r.name && r.relatedTypeName)
.map((r) => `{ name: "${escapeString(r.name)}", relatedTypeName: "${escapeString(r.relatedTypeName)}" }`);
return ` ${objectKey(e.typeName)}: [${rels.join(", ")}] as const`;
});
return `// Auto-generated by npm run scrape:metadata. Do not edit manually.
/* eslint-disable */
export const ENTITY_TYPES = [
${entityTypes.map((t) => ` "${escapeString(t)}",`).join("\n")}
] as const;
export type EntityTypeName = (typeof ENTITY_TYPES)[number];
export const FIELDS_BY_ENTITY = {
${fieldsLines.join(",\n")},
} as const;
export type EntityFieldName<T extends EntityTypeName> =
(typeof FIELDS_BY_ENTITY)[T][number];
export const RELATIONS_BY_ENTITY = {
${relationsLines.join(",\n")},
} as const;
export type EntityRelationEntry<T extends EntityTypeName> =
(typeof RELATIONS_BY_ENTITY)[T][number];
export type EntityRelationName<T extends EntityTypeName> =
EntityRelationEntry<T>["name"];
export function entityFields<T extends EntityTypeName>(
typeName: T,
): readonly EntityFieldName<T>[] {
return FIELDS_BY_ENTITY[typeName];
}
export function entityRelations<T extends EntityTypeName>(
typeName: T,
): readonly EntityRelationEntry<T>[] {
return RELATIONS_BY_ENTITY[typeName];
}
`;
}
//# sourceMappingURL=generate-types.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../src/metadata/generate-types.ts"],"names":[],"mappings":"AAEA,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAwB;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,QAAQ,YAAY,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC;aAC1C,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,YAAY,YAAY,CAAC,CAAC,CAAC,IAAK,CAAC,wBAAwB,YAAY,CAAC,CAAC,CAAC,eAAgB,CAAC,KAAK,CACjG,CAAC;QACJ,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,OAAO;;;;EAIP,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;EAM5D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;EAOvB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC;AACF,CAAC"}
+4
View File
@@ -0,0 +1,4 @@
export { fetchMetadataCatalog } from "./catalog.js";
export { filterStandardTypeNames, isStandardMetadataName, sanitizeEntityDescription, } from "./filter.js";
export type { DescribeMetadataParams, DescribeMetadataResult, EntityMetadataEntry, FetchMetadataCatalogOptions, ListEntitiesResult, MetadataCatalog, MetadataFlag, } from "./types.js";
//# sourceMappingURL=index.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,YAAY,CAAC"}
+3
View File
@@ -0,0 +1,3 @@
export { fetchMetadataCatalog } from "./catalog.js";
export { filterStandardTypeNames, isStandardMetadataName, sanitizeEntityDescription, } from "./filter.js";
//# sourceMappingURL=index.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,aAAa,CAAC"}
+13
View File
@@ -0,0 +1,13 @@
import type { HttpClient, QueryParamValue } from "../http.js";
import { type OperationCall } from "../service.js";
import type { JsonObject } from "../types.js";
import type { DescribeMetadataParams, DescribeMetadataResult, FetchMetadataCatalogOptions, ListEntitiesResult, MetadataCatalog } from "./types.js";
export interface MetadataService {
listEntities: () => Promise<ListEntitiesResult>;
describeMetadata: (params?: DescribeMetadataParams) => Promise<DescribeMetadataResult>;
fetchCatalog: (options?: FetchMetadataCatalogOptions) => Promise<MetadataCatalog>;
(operation: string, body?: JsonObject, query?: Record<string, QueryParamValue>): Promise<unknown>;
[operation: string]: OperationCall | (() => Promise<ListEntitiesResult>) | ((params?: DescribeMetadataParams) => Promise<DescribeMetadataResult>) | ((options?: FetchMetadataCatalogOptions) => Promise<MetadataCatalog>);
}
export declare function createMetadataService(http: HttpClient): MetadataService;
//# sourceMappingURL=service.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/metadata/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAgBpB,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,gBAAgB,EAAE,CAChB,MAAM,CAAC,EAAE,sBAAsB,KAC5B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACrC,YAAY,EAAE,CACZ,OAAO,CAAC,EAAE,2BAA2B,KAClC,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B,CACE,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GACtC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,SAAS,EAAE,MAAM,GACd,aAAa,GACb,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC,GACnC,CAAC,CAAC,MAAM,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC,GACtE,CAAC,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;CAC3E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAoBvE"}
+24
View File
@@ -0,0 +1,24 @@
import { createNamespaceService, } from "../service.js";
import { fetchMetadataCatalog } from "./catalog.js";
function describeMetadataQuery(params) {
if (!params)
return undefined;
const query = {};
if (params.typeNames?.length) {
query.typeNames = params.typeNames;
}
if (params.flags?.length) {
query.flags = params.flags;
}
return Object.keys(query).length > 0 ? query : undefined;
}
export function createMetadataService(http) {
const base = createNamespaceService(http, "metadata");
const invoke = base;
const service = base;
service.listEntities = () => invoke("ListEntities", undefined, undefined);
service.describeMetadata = (params) => invoke("DescribeMetadata", undefined, describeMetadataQuery(params));
service.fetchCatalog = (options) => fetchMetadataCatalog(http, options);
return service;
}
//# sourceMappingURL=service.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/metadata/service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AASpD,SAAS,qBAAqB,CAC5B,MAA+B;IAE/B,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,KAAK,GAAoC,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACrC,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACzB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAsBD,MAAM,UAAU,qBAAqB,CAAC,IAAgB;IACpD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAwB,CAAC;IAExC,MAAM,OAAO,GAAG,IAAuB,CAAC;IAExC,OAAO,CAAC,YAAY,GAAG,GAAG,EAAE,CAC1B,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAgC,CAAC;IAE9E,OAAO,CAAC,gBAAgB,GAAG,CAAC,MAA+B,EAAE,EAAE,CAC7D,MAAM,CACJ,kBAAkB,EAClB,SAAS,EACT,qBAAqB,CAAC,MAAM,CAAC,CACK,CAAC;IAEvC,OAAO,CAAC,YAAY,GAAG,CAAC,OAAqC,EAAE,EAAE,CAC/D,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC"}
+28
View File
@@ -0,0 +1,28 @@
import type { EntityDescription, FieldDescription, RelationDescription } from "../clarizen-api-types.js";
export type MetadataFlag = "fields" | "relations";
export interface ListEntitiesResult {
typeNames: string[];
}
export interface DescribeMetadataParams {
typeNames?: string[];
flags?: MetadataFlag[];
}
export interface DescribeMetadataResult {
entityDescriptions: EntityDescription[];
}
export interface EntityMetadataEntry {
typeName: string;
label?: string;
fields: FieldDescription[];
relations: RelationDescription[];
}
export interface MetadataCatalog {
fetchedAt: string;
entities: EntityMetadataEntry[];
}
export interface FetchMetadataCatalogOptions {
flags?: MetadataFlag[];
batchSize?: number;
onProgress?: (message: string) => void;
}
//# sourceMappingURL=types.d.ts.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC"}
+2
View File
@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=types.js.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":""}