@comake/skl-js-engine 1.5.5 → 1.5.6
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/dist/SklEngine.d.ts.map +1 -1
- package/dist/SklEngine.js +6 -0
- package/dist/SklEngine.js.map +1 -1
- package/dist/util/TripleUtil.d.ts.map +1 -1
- package/dist/util/TripleUtil.js +17 -0
- package/dist/util/TripleUtil.js.map +1 -1
- package/dist/util/Types.d.ts +4 -0
- package/dist/util/Types.d.ts.map +1 -1
- package/dist/util/Types.js.map +1 -1
- package/package.json +1 -1
- package/src/SklEngine.ts +6 -0
- package/src/util/TripleUtil.ts +19 -0
- package/src/util/Types.ts +6 -0
package/dist/SklEngine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SklEngine.d.ts","sourceRoot":"","sources":["../src/SklEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SklEngine.d.ts","sourceRoot":"","sources":["../src/SklEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/SklEngine.js
CHANGED
|
@@ -1091,6 +1091,12 @@ class SKLEngine {
|
|
|
1091
1091
|
responseType: 'arraybuffer'
|
|
1092
1092
|
};
|
|
1093
1093
|
}
|
|
1094
|
+
if (capabilityConfig?.axiosOptions && typeof capabilityConfig.axiosOptions === 'object' && Object.keys(capabilityConfig.axiosOptions).length > 0) {
|
|
1095
|
+
executeOperationOptions = {
|
|
1096
|
+
...executeOperationOptions,
|
|
1097
|
+
...capabilityConfig.axiosOptions
|
|
1098
|
+
};
|
|
1099
|
+
}
|
|
1094
1100
|
response = await openApiExecutor.executeOperation(operationId, configuration, operationArgs, executeOperationOptions);
|
|
1095
1101
|
}
|
|
1096
1102
|
catch (error) {
|
package/dist/SklEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SklEngine.js","sourceRoot":"","sources":["../src/SklEngine.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-div-regex */\n/* eslint-disable line-comment-position */\n\n/* eslint-disable no-inline-comments */\n/* eslint-disable require-unicode-regexp */\n \n \n \n/* eslint-disable @typescript-eslint/naming-convention */\nimport type { OpenApi, OpenApiClientConfiguration, OperationWithPathInfo } from '@comake/openapi-operation-executor';\nimport { OpenApiOperationExecutor } from '@comake/openapi-operation-executor';\nimport { getIdFromNodeObjectIfDefined, XSD, type ReferenceNodeObject } from '@comake/rmlmapper-js';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport axios from 'axios';\nimport type { ContextDefinition, GraphObject, NodeObject } from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport { JSONPath } from 'jsonpath-plus';\nimport SHACLValidator from 'rdf-validate-shacl';\nimport type ValidationReport from 'rdf-validate-shacl/src/validation-report';\nimport {\n EngineConstants,\n OPEN_API_RUNTIME_AUTHORIZATION,\n PROP_ENTITY_ID,\n PROP_ENTITY_TYPE,\n PROP_ENTITY_VALUE,\n RDF,\n RDFS,\n RML_LIST,\n SHACL\n} from './constants';\nimport { globalCustomCapabilities } from './customCapabilities';\nimport { globalHooks, HookStages, HookTypes } from './hooks/globalHooks';\nimport type { ExecutionOptions } from './JsExecutor';\nimport type { ICodeExecutor } from './JsExecutor/types';\nimport { Logger } from './logger';\nimport { Mapper } from './mapping/Mapper';\nimport type { ReadCacheOperation, ReadCachePolicy, ReadCacheStore, SklEngineOptions } from './SklEngineOptions';\nimport type { FindOperator } from './storage/FindOperator';\nimport type { FindAllOptions, FindOneOptions, FindOptionsWhere } from './storage/FindOptionsTypes';\nimport type { GroupByOptions, GroupByResponse } from './storage/GroupOptionTypes';\nimport { Exists } from './storage/operator/Exists';\nimport { In } from './storage/operator/In';\nimport { InversePath } from './storage/operator/InversePath';\nimport { Not } from './storage/operator/Not';\nimport { OneOrMorePath } from './storage/operator/OneOrMorePath';\nimport { SequencePath } from './storage/operator/SequencePath';\nimport { ZeroOrMorePath } from './storage/operator/ZeroOrMorePath';\nimport type { QueryAdapter, RawQueryResult } from './storage/query-adapter/QueryAdapter';\nimport { SparqlQueryAdapter } from './storage/query-adapter/sparql/SparqlQueryAdapter';\nimport { PerformanceLogger } from './util/PerformanceLogger';\nimport { buildReadCacheKey, ReadCacheSingleflight } from './util/ReadCacheHelper';\n// Import './util/safeJsonStringify';\nimport type {\n Callbacks,\n Capability,\n CapabilityConfig,\n CapabilityMapping,\n Entity,\n JSONObject,\n JSONValue,\n Mapping,\n MappingWithInputs,\n MappingWithInputsReference,\n MappingWithOutputsMapping,\n MappingWithParallel,\n MappingWithSeries,\n OperationResponse,\n OrArray,\n RdfList,\n SeriesCapabilityArgs,\n SKLEngineInterface,\n TriggerMapping\n} from './util/Types';\nimport { convertJsonLdToQuads, ensureArray, getValueIfDefined, toJSON } from './util/Util';\nimport { SKL_DATA_NAMESPACE, SKL_NAMESPACE } from './util/Vocabularies';\n\nexport type CapabilityHandler = <T extends OrArray<NodeObject> = OrArray<NodeObject>>(\n params: JSONObject,\n capabilityConfig?: CapabilityConfig\n) => Promise<T>;\nexport type CapabilityInterface = Record<string, CapabilityHandler>;\n\nexport type MappingResponseOption<T extends boolean> = T extends true ? JSONObject : NodeObject;\n\nexport type WriteOptions = { bypassHooks?: boolean };\nconst DEFAULT_READ_CACHE_TTL_MS = 60_000;\nconst READ_CACHE_ENVELOPE_MARKER = '__sklReadCacheEnvelopeV1';\ntype ReadCacheEnvelope<T> = {\n [READ_CACHE_ENVELOPE_MARKER]: true;\n value: T;\n};\n\nexport class SKLEngine implements SKLEngineInterface {\n private readonly queryAdapter: QueryAdapter;\n private readonly functions?: Record<string, (args: any | any[]) => any>;\n private readonly inputFiles?: Record<string, string>;\n private readonly globalCallbacks?: Callbacks;\n private readonly disableValidation?: boolean;\n public readonly capability: CapabilityInterface;\n private codeExecutor: ICodeExecutor | undefined;\n private readonly skdsEndpointUrl: string;\n private readonly scriptPath: string;\n private readonly logger: Logger;\n private readonly readCache?: ReadCacheStore;\n private readonly readCachePolicy?: ReadCachePolicy;\n private readonly readCacheNamespace?: string;\n private readonly readCacheSingleflight = new ReadCacheSingleflight();\n public constructor(options: SklEngineOptions) {\n this.queryAdapter = new SparqlQueryAdapter(options);\n this.disableValidation = options.disableValidation;\n this.globalCallbacks = options.callbacks;\n this.inputFiles = options.inputFiles;\n this.skdsEndpointUrl = (options as any).endpointUrl;\n this.scriptPath = (options as any).scriptPath;\n this.readCache = options.readCache;\n this.readCachePolicy = options.readCachePolicy;\n this.readCacheNamespace = options.readCacheNamespace;\n if (options.functions) {\n this.functions = Object.fromEntries(\n Object.entries(options.functions).map(([key, func]) => [\n key,\n (data: Record<string | number, any> = {}) => {\n // Add the SKL instance to the data object\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n data.skl = this;\n\n // Call the original function\n return func(data);\n }\n ])\n );\n }\n this.logger = Logger.getInstance(options.debugMode);\n\n // eslint-disable-next-line func-style\n const getCapabilityHandler =\n (getTarget: CapabilityInterface, property: string): CapabilityHandler =>\n async <T extends OrArray<NodeObject> = OrArray<NodeObject>>(\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<T> =>\n this.executeCapabilityByName(property, capabilityArgs, capabilityConfig) as Promise<T>;\n this.capability = new Proxy({} as CapabilityInterface, { get: getCapabilityHandler });\n }\n\n public setCodeExecutor(codeExecutor: ICodeExecutor): void {\n this.codeExecutor = codeExecutor;\n }\n\n public async executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]> {\n return await this.queryAdapter.executeRawQuery<T>(query);\n }\n\n public async executeRawUpdate(query: string): Promise<void> {\n return await this.queryAdapter.executeRawUpdate(query);\n }\n\n public async executeRawConstructQuery(query: string, frame?: Frame): Promise<GraphObject> {\n return await this.queryAdapter.executeRawConstructQuery(query, frame);\n }\n\n private cloneForReadCache<T>(value: T): T {\n try {\n return structuredClone(value);\n } catch {\n return value;\n }\n }\n\n private wrapReadCacheValue<T>(value: T): ReadCacheEnvelope<T> {\n return {\n [READ_CACHE_ENVELOPE_MARKER]: true,\n value\n };\n }\n\n private isReadCacheEnvelope<T>(value: unknown): value is ReadCacheEnvelope<T> {\n if (!value || typeof value !== 'object') {\n return false;\n }\n return (value as Record<string, unknown>)[READ_CACHE_ENVELOPE_MARKER] === true;\n }\n\n private stripBypassCacheFromFindOneOptions(options?: FindOneOptions): FindOneOptions | undefined {\n if (!options) {\n return options;\n }\n const { bypassCache, ...rest } = options;\n return rest;\n }\n\n private stripBypassCacheFromFindAllOptions(options?: FindAllOptions): FindAllOptions | undefined {\n if (!options) {\n return options;\n }\n const { bypassCache, ...rest } = options;\n return rest;\n }\n\n private stripBypassCacheFromWhere(where?: FindOptionsWhere): FindOptionsWhere | undefined {\n if (!where) {\n return where;\n }\n const { bypassCache, ...rest } = where;\n return rest;\n }\n\n private async runReadWithCache<T>(params: {\n operation: ReadCacheOperation;\n args: readonly unknown[];\n bypassCache?: boolean;\n execute: () => Promise<T>;\n }): Promise<T> {\n if (params.bypassCache) {\n return await params.execute();\n }\n\n if (!this.readCache || !this.readCachePolicy) {\n return await params.execute();\n }\n\n const policyDecision = this.readCachePolicy({\n operation: params.operation,\n args: params.args,\n endpointUrl: this.skdsEndpointUrl,\n namespace: this.readCacheNamespace\n });\n if (!policyDecision.cache) {\n return await params.execute();\n }\n\n const ttlMs = policyDecision.ttlMs ?? DEFAULT_READ_CACHE_TTL_MS;\n if (ttlMs <= 0) {\n return await params.execute();\n }\n\n const cacheKey = buildReadCacheKey({\n operation: params.operation,\n args: params.args,\n endpointUrl: this.skdsEndpointUrl,\n namespace: this.readCacheNamespace,\n keyHint: policyDecision.keyHint\n });\n\n return await this.readCacheSingleflight.do(cacheKey, async() => {\n try {\n const cached = await this.readCache?.get(cacheKey);\n if (cached !== undefined) {\n if (this.isReadCacheEnvelope<T>(cached)) {\n return this.cloneForReadCache(cached.value);\n }\n return this.cloneForReadCache(cached as T);\n }\n } catch (error) {\n this.logger.debug('Read cache lookup failed; continuing without cache', error as any);\n }\n\n const result = await params.execute();\n\n try {\n await this.readCache?.set(cacheKey, this.wrapReadCacheValue(this.cloneForReadCache(result)), ttlMs);\n } catch (error) {\n this.logger.debug('Read cache write failed; continuing without cache', error as any);\n }\n\n return result;\n });\n }\n\n public async find(options?: FindOneOptions): Promise<Entity> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindOneOptions(options);\n\n return PerformanceLogger.withSpanRoot('SklEngine.find', async() => {\n const context = {\n entities: [],\n operation: 'find',\n operationParameters: { options: optionsWithoutBypass },\n sklEngine: this\n };\n\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n\n try {\n const entity = await this.runReadWithCache({\n operation: 'find',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.find(optionsWithoutBypass)\n });\n if (!entity) {\n throw new Error(`No schema found with fields matching ${JSON.stringify(optionsWithoutBypass)}`);\n }\n\n const updatedContext = { ...context, entities: [entity]};\n const afterHookResult = await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entity);\n\n return afterHookResult || entity;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options: optionsWithoutBypass });\n }\n\n public async findBy(where: FindOptionsWhere, notFoundErrorMessage?: string): Promise<Entity> {\n const bypassCache = where?.bypassCache;\n const whereWithoutBypass = this.stripBypassCacheFromWhere(where)!;\n\n return PerformanceLogger.withSpanRoot('SklEngine.findBy', async() => {\n const context = {\n entities: [],\n operation: 'findBy',\n operationParameters: { where: whereWithoutBypass },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entity = await this.runReadWithCache({\n operation: 'findBy',\n args: [whereWithoutBypass, notFoundErrorMessage],\n bypassCache,\n execute: async() => await this.queryAdapter.findBy(whereWithoutBypass)\n });\n if (entity) {\n const updatedContext = { ...context, entities: [entity]};\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entity);\n return entity;\n }\n throw new Error(notFoundErrorMessage ?? `No schema found with fields matching ${JSON.stringify(whereWithoutBypass)}`);\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { where: whereWithoutBypass });\n }\n\n public async findByIfExists(options: FindOptionsWhere): Promise<Entity | undefined> {\n try {\n const entity = await this.findBy(options);\n return entity;\n } catch {\n return undefined;\n }\n }\n\n public async findAll(options?: FindAllOptions): Promise<Entity[]> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindAllOptions(options);\n\n return PerformanceLogger.withSpanRoot('SklEngine.findAll', async() => {\n const context = {\n entities: [],\n operation: 'findAll',\n operationParameters: { options: optionsWithoutBypass },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entities = await this.runReadWithCache({\n operation: 'findAll',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.findAll(optionsWithoutBypass)\n });\n const updatedContext = { ...context, entities };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entities);\n return entities;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options: optionsWithoutBypass });\n }\n\n public async groupBy(options: GroupByOptions): Promise<GroupByResponse> {\n return PerformanceLogger.withSpanRoot('SklEngine.groupBy', async() => {\n const context = {\n entities: [],\n operation: 'groupBy',\n operationParameters: { options },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const result = await this.queryAdapter.groupBy(options);\n const updatedContext = { ...context, result };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, result);\n return result;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options });\n }\n\n public async findAllBy(where: FindOptionsWhere): Promise<Entity[]> {\n return PerformanceLogger.withSpanRoot('SklEngine.findAllBy', async() => {\n const context = {\n entities: [],\n operation: 'findAllBy',\n operationParameters: { where },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entities = await this.queryAdapter.findAllBy(where);\n const updatedContext = { ...context, entities };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entities);\n return entities;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { where });\n }\n\n public async exists(options?: FindAllOptions): Promise<boolean> {\n return PerformanceLogger.withSpanRoot('SklEngine.exists', async() => this.queryAdapter.exists(options), { options });\n }\n\n public async count(options?: FindAllOptions): Promise<number> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindAllOptions(options);\n\n return PerformanceLogger.withSpanRoot(\n 'SklEngine.count',\n async() =>\n await this.runReadWithCache({\n operation: 'count',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.count(optionsWithoutBypass)\n }),\n { options: optionsWithoutBypass }\n );\n }\n\n public async save(entity: Entity, options?: WriteOptions): Promise<Entity>;\n public async save(entities: Entity[], options?: WriteOptions): Promise<Entity[]>;\n public async save(entityOrEntities: Entity | Entity[], options?: WriteOptions): Promise<Entity | Entity[]> {\n return PerformanceLogger.withSpanRoot('SklEngine.save', async() => {\n const entityArray = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n const isSingleEntity = !Array.isArray(entityOrEntities);\n\n await globalHooks.executeBeforeCreate(entityArray, { sklEngine: this, bypassHooks: options?.bypassHooks });\n\n try {\n await this.validateEntitiesConformToObjectSchema(entityArray);\n const savedEntities = await this.queryAdapter.save(entityArray);\n await globalHooks.executeAfterCreate(savedEntities, { sklEngine: this, bypassHooks: options?.bypassHooks });\n return isSingleEntity ? savedEntities[0] : savedEntities;\n } catch (error) {\n await globalHooks.executeErrorCreate(entityArray, error as Error, { sklEngine: this, bypassHooks: options?.bypassHooks });\n throw error;\n }\n }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });\n }\n\n public async update(id: string, attributes: Partial<Entity>, options?: WriteOptions): Promise<void>;\n public async update(ids: string[], attributes: Partial<Entity>, options?: WriteOptions): Promise<void>;\n public async update(idOrIds: string | string[], attributes: Partial<Entity>, options?: WriteOptions): Promise<void> {\n return PerformanceLogger.withSpanRoot('SklEngine.update', async() => {\n const idArray = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n const isSingleEntity = !Array.isArray(idOrIds);\n\n await globalHooks.execute(HookTypes.UPDATE, HookStages.BEFORE, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n\n try {\n if (idArray.length > 1) {\n await this.validateEntitiesWithIdsConformsToObjectSchemaForAttributes(idArray, attributes);\n } else {\n await this.validateEntityWithIdConformsToObjectSchemaForAttributes(idArray[0], attributes);\n }\n await this.queryAdapter.update(isSingleEntity ? idArray[0] : (idArray as any), attributes);\n\n await globalHooks.execute(HookTypes.UPDATE, HookStages.AFTER, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.UPDATE, HookStages.ERROR, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n }, error);\n throw error;\n }\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async validateEntitiesConformToObjectSchema(entities: Entity[]): Promise<void> {\n const entitiesByType = this.groupEntitiesByType(entities);\n for (const type of Object.keys(entitiesByType)) {\n const object = await this.findByIfExists({ id: type });\n if (object) {\n const parentObjects = await this.getSuperClassesOfObject(type);\n for (const currentObject of [object, ...parentObjects]) {\n const entitiesOfType = entitiesByType[type];\n const nounSchemaWithTarget = {\n ...currentObject,\n [SHACL.targetNode]: entitiesOfType.map(\n (entity): ReferenceNodeObject => ({ [PROP_ENTITY_ID]: entity[PROP_ENTITY_ID] })\n )\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(entitiesOfType, nounSchemaWithTarget);\n if (!report.conforms) {\n const entityIds = entitiesOfType.map((entity): string => entity[PROP_ENTITY_ID]);\n this.throwValidationReportError(\n report,\n `Entity ${entityIds.join(', ')} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n }\n\n private groupEntitiesByType(entities: Entity[]): Record<string, Entity[]> {\n return entities.reduce((groupedEntities: Record<string, Entity[]>, entity): Record<string, Entity[]> => {\n const entityTypes = Array.isArray(entity[PROP_ENTITY_TYPE])\n ? entity[PROP_ENTITY_TYPE]\n : [entity[PROP_ENTITY_TYPE]];\n for (const type of entityTypes) {\n if (!groupedEntities[type]) {\n groupedEntities[type] = [];\n }\n groupedEntities[type].push(entity);\n }\n return groupedEntities;\n }, {});\n }\n\n private async getSuperClassesOfObject(object: string): Promise<Entity[]> {\n return await this.getParentsOfSelector(object);\n }\n\n private async getSuperClassesOfObjects(nouns: string[]): Promise<Entity[]> {\n return await this.getParentsOfSelector(In(nouns));\n }\n\n private async getParentsOfSelector(selector: string | FindOperator<any, any>): Promise<Entity[]> {\n return await this.findAll({\n where: {\n id: InversePath({\n subPath: OneOrMorePath({ subPath: RDFS.subClassOf as string }),\n value: selector\n })\n }\n });\n }\n\n private async validateEntityConformsToObjectSchema(entity: Entity): Promise<void> {\n const nounIds = Array.isArray(entity[PROP_ENTITY_TYPE]) ? entity[PROP_ENTITY_TYPE] : [entity[PROP_ENTITY_TYPE]];\n const directObjects = await this.findAllBy({ id: In(nounIds) });\n if (directObjects.length > 0) {\n const existingObjectIds = directObjects.map((object): string => object[PROP_ENTITY_ID]);\n const parentObjects = await this.getSuperClassesOfObjects(existingObjectIds);\n for (const currentObject of [...directObjects, ...parentObjects]) {\n const nounSchemaWithTarget = {\n ...currentObject,\n [SHACL.targetNode]: { [PROP_ENTITY_ID]: entity[PROP_ENTITY_ID] }\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(entity, nounSchemaWithTarget);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `Entity ${entity[PROP_ENTITY_ID]} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n\n private async validateEntitiesWithIdsConformsToObjectSchemaForAttributes(\n ids: string[],\n attributes: Partial<Entity>\n ): Promise<void> {\n for (const id of ids) {\n await this.validateEntityWithIdConformsToObjectSchemaForAttributes(id, attributes);\n }\n }\n\n private async getObjectsAndParentObjectsOfEntity(id: string): Promise<Entity[]> {\n return await this.findAllBy({\n id: InversePath({\n subPath: SequencePath({\n subPath: [RDF.type, ZeroOrMorePath({ subPath: RDFS.subClassOf as string })]\n }),\n value: id\n })\n });\n }\n\n private async validateEntityWithIdConformsToObjectSchemaForAttributes(\n id: string,\n attributes: Partial<Entity>\n ): Promise<void> {\n const nouns = await this.getObjectsAndParentObjectsOfEntity(id);\n for (const currentObject of nouns) {\n if (SHACL.property in currentObject) {\n const nounProperties = ensureArray(currentObject[SHACL.property] as OrArray<NodeObject>).filter(\n (property): boolean => {\n const path = property[SHACL.path];\n if (typeof path === 'string' && path in attributes) {\n return true;\n }\n if (typeof path === 'object' && PROP_ENTITY_ID in path! && (path[PROP_ENTITY_ID] as string) in attributes) {\n return true;\n }\n return false;\n }\n );\n if (nounProperties.length > 0) {\n const nounSchemaWithTarget = {\n [PROP_ENTITY_TYPE]: SHACL.NodeShape,\n [SHACL.targetNode]: { [PROP_ENTITY_ID]: id },\n [SHACL.property]: nounProperties\n };\n const attributesWithId = { ...attributes, [PROP_ENTITY_ID]: id };\n const report = await this.convertToQuadsAndValidateAgainstShape(attributesWithId, nounSchemaWithTarget);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `Entity ${id} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n }\n\n public async delete(id: string, options?: WriteOptions): Promise<void>;\n public async delete(ids: string[], options?: WriteOptions): Promise<void>;\n public async delete(idOrIds: string | string[], options?: WriteOptions): Promise<void> {\n return PerformanceLogger.withSpanRoot('SklEngine.delete', async() => {\n const idArray = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n\n await globalHooks.execute(HookTypes.DELETE, HookStages.BEFORE, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n\n try {\n await this.queryAdapter.delete(idArray);\n\n await globalHooks.execute(HookTypes.DELETE, HookStages.AFTER, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n } catch (error) {\n await globalHooks.execute(HookTypes.DELETE, HookStages.ERROR, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n }, error);\n throw error;\n }\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async destroy(entity: Entity): Promise<Entity>;\n public async destroy(entities: Entity[]): Promise<Entity[]>;\n public async destroy(entityOrEntities: Entity | Entity[]): Promise<Entity | Entity[]> {\n if (Array.isArray(entityOrEntities)) {\n return await this.queryAdapter.destroy(entityOrEntities);\n }\n return await this.queryAdapter.destroy(entityOrEntities);\n }\n\n public async destroyAll(): Promise<void> {\n return await this.queryAdapter.destroyAll();\n }\n\n public async performMapping(\n args: JSONValue,\n mapping: OrArray<NodeObject>,\n frame?: Record<string, any>,\n capabilityConfig?: CapabilityConfig,\n jsExecutionOptions?: ExecutionOptions\n ): Promise<NodeObject> {\n const mappingArray = ensureArray(mapping);\n const codeBlocks = mappingArray.filter(\n (mappingItem: NodeObject): boolean =>\n mappingItem[PROP_ENTITY_TYPE] === EngineConstants.spec.codeBlock &&\n this.isJavaScriptCode(getValueIfDefined(mappingItem[EngineConstants.prop.codeBody])!)\n );\n // FIXME: Handle if we can combine the codeb blocks with triples map.\n // As of now if there is any code block, triples map does not get executed.\n if (codeBlocks.length > 0) {\n return await this.executeCodeBlocks(codeBlocks, args, jsExecutionOptions ?? {});\n }\n\n const functions = {\n ...this.functions,\n ...capabilityConfig?.functions\n };\n const mapper = new Mapper({ functions });\n return await mapper.apply(args, mapping, frame ?? {});\n }\n\n public async executeTrigger(integration: string, payload: any): Promise<void> {\n const triggerToCapabilityMapping = await this.findTriggerCapabilityMapping(integration);\n const capabilityArgs = await this.performParameterMappingOnArgsIfDefined(\n payload,\n triggerToCapabilityMapping as Partial<MappingWithInputs> | Partial<MappingWithInputsReference>\n );\n const capabilityId = await this.performCapabilityMappingWithArgs(payload, triggerToCapabilityMapping);\n if (capabilityId) {\n const mappedCapability = (await this.findBy({ id: capabilityId })) as Capability;\n await this.executeCapability(mappedCapability, capabilityArgs);\n }\n }\n\n private async findTriggerCapabilityMapping(integration: string): Promise<TriggerMapping> {\n const triggerCapabilityMappingNew = (await this.findBy(\n {\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: integration,\n [EngineConstants.prop.capabilityType]: EngineConstants.spec.triggerCapabilityMapping\n },\n `Failed to find a Trigger Capability mapping for integration ${integration}`\n )) as TriggerMapping;\n if (triggerCapabilityMappingNew) {\n return triggerCapabilityMappingNew;\n }\n throw new Error(`Failed to find a Trigger Capability mapping for integration ${integration}`);\n }\n\n private async executeCapabilityByName(\n capabilityName: string,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capability = await this.findCapabilityWithName(capabilityName);\n return await this.executeCapability(capability, capabilityArgs, capabilityConfig);\n }\n\n private async findCapabilityWithName(capabilityName: string): Promise<Capability> {\n return (await this.findBy(\n { type: EngineConstants.spec.capability, [EngineConstants.prop.label]: capabilityName },\n `Failed to find the capability ${capabilityName} in the schema.`\n )) as Capability;\n }\n\n public async executeCapability(\n capability: Capability,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n this.globalCallbacks?.onCapabilityStart?.(capability[PROP_ENTITY_ID], capabilityArgs);\n if (capabilityConfig?.callbacks?.onCapabilityStart) {\n this.logger.debug('Capability arguments', capabilityArgs);\n capabilityConfig.callbacks.onCapabilityStart(capability[PROP_ENTITY_ID], capabilityArgs);\n }\n const { mapping, account } = await this.findMappingForCapabilityContextually(\n capability[PROP_ENTITY_ID],\n capabilityArgs\n );\n this.logger.debug('Mapping', JSON.stringify(mapping));\n const shouldValidate = this.shouldValidate(capabilityConfig);\n if (shouldValidate) {\n await this.assertCapabilityParamsMatchParameterSchemas(capabilityArgs, capability);\n }\n\n try {\n // Execute capability mapping before hook if appropriate -\n // works for any mapping that can be used as a verb mapping\n if (mapping) {\n await globalHooks.executeBeforeExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, { sklEngine: this });\n }\n\n const verbReturnValue = await this.executeMapping(mapping, capabilityArgs, capabilityConfig, account);\n\n if (shouldValidate) {\n await this.assertCapabilityReturnValueMatchesReturnTypeSchema(verbReturnValue, capability);\n }\n\n // Execute capability mapping after hook if appropriate\n if (mapping) {\n await globalHooks.executeAfterExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, verbReturnValue, { sklEngine: this });\n }\n\n this.globalCallbacks?.onCapabilityEnd?.(capability[PROP_ENTITY_ID], verbReturnValue);\n if (capabilityConfig?.callbacks?.onCapabilityEnd) {\n capabilityConfig.callbacks.onCapabilityEnd(capability[PROP_ENTITY_ID], verbReturnValue);\n }\n\n return verbReturnValue;\n } catch (error) {\n // Execute capability mapping error hook if appropriate\n if (mapping) {\n await globalHooks.executeErrorExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, error as Error, { sklEngine: this });\n }\n throw error;\n }\n }\n\n private async findMappingForCapabilityContextually(\n capabilityId: string,\n args: JSONObject\n ): Promise<{ mapping: CapabilityMapping; account?: Entity }> {\n if (args.mapping) {\n const mapping = await this.findByIfExists({ id: args.mapping as string });\n if (!mapping) {\n throw new Error(`Mapping ${args.mapping as string} not found.`);\n }\n return { mapping: mapping as CapabilityMapping };\n }\n if (args.object) {\n const mapping = await this.findCapabilityObjectMapping(capabilityId, args.object as string);\n if (mapping) {\n return { mapping };\n }\n }\n if (args.account) {\n const account = await this.findBy({ id: args.account as string });\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const mapping = await this.findCapabilityIntegrationMapping(capabilityId, integratedProductId);\n if (mapping) {\n return { mapping, account };\n }\n }\n\n const mappings = await this.findAllBy({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.integration]: Not(Exists()),\n [EngineConstants.prop.object]: Not(Exists())\n });\n if (mappings.length === 1) {\n return { mapping: mappings[0] as CapabilityMapping };\n }\n if (mappings.length > 1) {\n throw new Error('Multiple mappings found for capability, please specify one.');\n }\n if (args.object) {\n throw new Error(`Mapping between object ${args.object as string} and capability ${capabilityId} not found.`);\n }\n if (args.account) {\n throw new Error(`Mapping between account ${args.account as string} and capability ${capabilityId} not found.`);\n }\n throw new Error(`No mapping found.`);\n }\n\n public async executeMapping(\n mapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n account?: Entity\n ): Promise<OrArray<NodeObject>> {\n args = await this.addPreProcessingMappingToArgs(mapping, args, capabilityConfig);\n let returnValue: OrArray<NodeObject>;\n // If (EngineConstants.prop.capability in mapping || EngineConstants.prop.capabilityMapping in mapping) {\n // const capabilityId = await this.performCapabilityMappingWithArgs(args, mapping, capabilityConfig);\n // const mappedArgs = await this.performParameterMappingOnArgsIfDefined(\n // { ...args, capabilityId },\n // mapping as MappingWithInputs,\n // capabilityConfig\n // );\n // Logger.getInstance().log('Mapped args', mappedArgs);\n // returnValue = await this.executeCapabilityMapping(mapping, args, mappedArgs, capabilityConfig);\n // } else {\n const mappedArgs = await this.performParameterMappingOnArgsIfDefined(\n args,\n mapping as MappingWithInputs,\n capabilityConfig\n );\n this.logger.debug('Mapped args', mappedArgs);\n if (EngineConstants.prop.operationId in mapping || EngineConstants.prop.operationMapping in mapping) {\n returnValue = (await this.executeOperationMapping(\n mapping,\n mappedArgs,\n args,\n account!,\n capabilityConfig\n )) as NodeObject;\n } else if (EngineConstants.prop.series in mapping) {\n returnValue = await this.executeSeriesMapping(mapping as MappingWithSeries, mappedArgs, capabilityConfig);\n } else if (EngineConstants.prop.parallel in mapping) {\n returnValue = await this.executeParallelMapping(mapping as MappingWithParallel, mappedArgs, capabilityConfig);\n } else {\n returnValue = mappedArgs;\n }\n // }\n return await this.performReturnValueMappingWithFrameIfDefined(\n returnValue as JSONValue,\n mapping as MappingWithOutputsMapping,\n capabilityConfig\n );\n }\n\n private shouldValidate(capabilityConfig?: CapabilityConfig): boolean {\n return capabilityConfig?.disableValidation === undefined\n ? this.disableValidation !== true\n : !capabilityConfig.disableValidation;\n }\n\n private async executeOperationMapping(\n mapping: Mapping,\n mappedArgs: JSONObject,\n originalArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<OperationResponse | OrArray<NodeObject>> {\n const integration = (mapping as CapabilityMapping)[EngineConstants.prop.integration]?.[PROP_ENTITY_ID];\n\n // If the mapping has an integration, it means that the operation is an integration operation\n if (integration) {\n const operationInfo = await this.performOperationMappingWithArgs(originalArgs, mapping, capabilityConfig);\n const response = await this.performOperation(operationInfo, mappedArgs, originalArgs, account, capabilityConfig);\n if (!this.ifCapabilityStreaming(capabilityConfig)) {\n this.logger.debug('Original response', JSON.stringify(response));\n }\n return response;\n }\n // If the mapping does not have an integration, it means that the operation is a capability operation\n return await this.executeCapabilityMapping(mapping, originalArgs, mappedArgs, capabilityConfig);\n }\n\n private async executeSeriesMapping(\n mapping: MappingWithSeries,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const seriesCapabilityMappingsList = this.rdfListToArray(mapping[EngineConstants.prop.series]!);\n const seriesCapabilityArgs = {\n originalCapabilityParameters: args,\n previousCapabilityReturnValue: {},\n allStepsResults: []\n };\n\n return await this.executeSeriesFromList(seriesCapabilityMappingsList, seriesCapabilityArgs, capabilityConfig);\n }\n\n private rdfListToArray(list: { [RML_LIST]: CapabilityMapping[] } | RdfList<CapabilityMapping>): CapabilityMapping[] {\n if (!(RML_LIST in list)) {\n return [\n list[RDF.first],\n ...getIdFromNodeObjectIfDefined(list[RDF.rest] as ReferenceNodeObject) === RDF.nil\n ? []\n : this.rdfListToArray(list[RDF.rest] as RdfList<CapabilityMapping>)\n ];\n }\n return list[RML_LIST];\n }\n\n private async executeSeriesFromList(\n list: Mapping[],\n args: SeriesCapabilityArgs,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const nextCapabilityMapping = list[0];\n const returnValue = await this.executeMapping(nextCapabilityMapping, args, capabilityConfig);\n if (list.length > 1) {\n return await this.executeSeriesFromList(\n list.slice(1),\n {\n ...args,\n previousCapabilityReturnValue: returnValue as JSONObject,\n allStepsResults: [...args.allStepsResults ?? [], returnValue as JSONObject]\n },\n capabilityConfig\n );\n }\n return returnValue;\n }\n\n private async executeCapabilityMapping(\n capabilityMapping: Mapping,\n originalArgs: JSONObject,\n mappedArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capabilityId = await this.performCapabilityMappingWithArgs(originalArgs, capabilityMapping, capabilityConfig);\n if (capabilityId) {\n if (capabilityId === EngineConstants.dataSource.update) {\n await this.updateEntityFromcapabilityArgs(mappedArgs);\n return {};\n }\n if (capabilityId === EngineConstants.dataSource.save) {\n return await this.saveEntityOrEntitiesFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.destroy) {\n return await this.destroyEntityOrEntitiesFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.findAll) {\n return await this.findAll(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.find) {\n return await this.find(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.count) {\n return await this.countAndWrapValueFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.exists) {\n return await this.existsAndWrapValueFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === 'https://skl.ai/capability/execute-code') {\n const codeBlocks = ensureArray((capabilityMapping[EngineConstants.prop.codeBlocks] as any[]) ?? []).filter(\n (mappingItem: any): boolean =>\n mappingItem[PROP_ENTITY_TYPE] === EngineConstants.spec.codeBlock &&\n this.isJavaScriptCode(getValueIfDefined(mappingItem[EngineConstants.prop.codeBody])!)\n );\n return await this.executeCodeBlocks(codeBlocks, mappedArgs, {});\n }\n\n // Check for custom capabilities\n if (globalCustomCapabilities.has(capabilityId)) {\n return await globalCustomCapabilities.execute(capabilityId, mappedArgs, this, capabilityConfig);\n }\n\n return await this.findAndExecuteCapability(capabilityId, mappedArgs, capabilityConfig);\n }\n return {};\n }\n\n private async addPreProcessingMappingToArgs(\n capabilityMapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<JSONObject> {\n if (EngineConstants.prop.preProcessingMapping in capabilityMapping) {\n const preMappingArgs = await this.performMapping(\n args,\n capabilityMapping[EngineConstants.prop.preProcessingMapping] as NodeObject,\n getValueIfDefined(capabilityMapping[EngineConstants.prop.preProcessingMappingFrame]),\n capabilityConfig\n );\n return { ...args, preProcessedParameters: preMappingArgs as JSONObject };\n }\n return args;\n }\n\n private replaceTypeAndId(entity: Record<string, any>): Record<string, any> {\n if (typeof entity !== 'object') {\n throw new Error('Entity is not an object');\n }\n const clonedEntity = structuredClone(entity);\n if (clonedEntity[EngineConstants.prop.type]) {\n clonedEntity[PROP_ENTITY_TYPE] = clonedEntity[EngineConstants.prop.type];\n }\n if (clonedEntity[EngineConstants.prop.identifier]) {\n clonedEntity[PROP_ENTITY_ID] = SKL_DATA_NAMESPACE + (clonedEntity[EngineConstants.prop.identifier] as string);\n }\n return clonedEntity;\n }\n\n private async updateEntityFromcapabilityArgs(args: Record<string, any>): Promise<void> {\n let ids = args.id ?? args.ids;\n if (!Array.isArray(ids)) {\n ids = [ids];\n }\n // FIX: Temporary fix for the issue where the id always getting prefixed with the namespace\n ids = ids.map((id: string) => (id.startsWith('http') ? id : `${SKL_DATA_NAMESPACE}${id}`));\n await this.update(ids, args.attributes);\n }\n\n private async saveEntityOrEntitiesFromcapabilityArgs(args: Record<string, any>): Promise<OrArray<Entity>> {\n if (args.entity && typeof args.entity === 'object') {\n args.entity = this.replaceTypeAndId(args.entity);\n }\n if (args.entities && Array.isArray(args.entities)) {\n args.entities = args.entities.map(this.replaceTypeAndId);\n }\n return await this.save(args.entity ?? args.entities);\n }\n\n private async destroyEntityOrEntitiesFromcapabilityArgs(args: Record<string, any>): Promise<OrArray<Entity>> {\n if (args.entity && typeof args.entity === 'object') {\n args.entity = this.replaceTypeAndId(args.entity);\n }\n if (args.entities && Array.isArray(args.entities)) {\n args.entities = args.entities.map(this.replaceTypeAndId);\n }\n return await this.destroy(args.entity ?? args.entities);\n }\n\n private async countAndWrapValueFromcapabilityArgs(args: Record<string, any>): Promise<NodeObject> {\n const count = await this.count(args);\n return {\n [EngineConstants.dataSource.countResult]: {\n [PROP_ENTITY_VALUE]: count,\n [PROP_ENTITY_TYPE]: XSD.integer\n }\n };\n }\n\n private async existsAndWrapValueFromcapabilityArgs(args: Record<string, any>): Promise<NodeObject> {\n const exists = await this.exists(args);\n return {\n [EngineConstants.dataSource.existsResult]: {\n [PROP_ENTITY_VALUE]: exists,\n [PROP_ENTITY_TYPE]: XSD.boolean\n }\n };\n }\n\n public async findAndExecuteCapability(\n capabilityId: string,\n args: Record<string, any>,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capability = (await this.findBy({ id: capabilityId })) as Capability;\n return await this.executeCapability(capability, args, capabilityConfig);\n }\n\n private async executeParallelMapping(\n mapping: MappingWithParallel,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject[]> {\n const parallelCapabilityMappings = ensureArray(\n mapping[EngineConstants.prop.parallel] as unknown as OrArray<CapabilityMapping>\n );\n const nestedReturnValues = await Promise.all<Promise<OrArray<NodeObject>>>(\n parallelCapabilityMappings.map(\n (capabilityMapping): Promise<OrArray<NodeObject>> =>\n this.executeMapping(capabilityMapping, args, capabilityConfig)\n )\n );\n return nestedReturnValues.flat();\n }\n\n private async findCapabilityIntegrationMapping(\n capabilityId: string,\n integratedProductId: string\n ): Promise<CapabilityMapping | undefined> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.integration]: integratedProductId\n })) as CapabilityMapping;\n }\n\n private async performOperationMappingWithArgs(\n args: JSONValue,\n mapping: Mapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject> {\n if (mapping[EngineConstants.prop.operationId]) {\n return { [EngineConstants.prop.operationId]: mapping[EngineConstants.prop.operationId] };\n }\n if (mapping[EngineConstants.prop.dataSource]) {\n return { [EngineConstants.prop.dataSource]: mapping[EngineConstants.prop.dataSource] };\n }\n return await this.performMapping(\n args,\n mapping[EngineConstants.prop.operationMapping] as OrArray<NodeObject>,\n undefined,\n capabilityConfig\n );\n }\n\n private async performOperation(\n operationInfo: NodeObject,\n operationArgs: JSONObject,\n originalArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig,\n securityCredentials?: Entity\n ): Promise<OperationResponse> {\n if (operationInfo[EngineConstants.prop.schemeName]) {\n return await this.performOauthSecuritySchemeStageWithCredentials(\n operationInfo,\n operationArgs,\n account,\n securityCredentials\n );\n }\n if (operationInfo[EngineConstants.prop.dataSource]) {\n return await this.getDataFromDataSource(\n getIdFromNodeObjectIfDefined(operationInfo[EngineConstants.prop.dataSource] as string | ReferenceNodeObject)!,\n capabilityConfig\n );\n }\n if (operationInfo[EngineConstants.prop.operationId]) {\n const response = await this.performOpenapiOperationWithCredentials(\n getValueIfDefined(operationInfo[EngineConstants.prop.operationId])!,\n operationArgs,\n account,\n capabilityConfig\n );\n return this.axiosResponseAndParamsToOperationResponse(response, operationArgs, originalArgs);\n }\n throw new Error('Operation not supported.');\n }\n\n private axiosResponseAndParamsToOperationResponse(\n response: AxiosResponse,\n operationParameters: JSONObject,\n originalArgs: JSONObject\n ): OperationResponse {\n return {\n operationParameters,\n originalCapabilityParameters: originalArgs,\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n config: {\n headers: response.config.headers,\n method: response.config.method,\n url: response.config.url,\n data: response.config.data\n } as JSONObject\n };\n }\n\n private async performReturnValueMappingWithFrameIfDefined(\n returnValue: JSONValue,\n mapping: MappingWithOutputsMapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject> {\n if (EngineConstants.prop.outputsMapping in mapping) {\n return await this.performMapping(\n returnValue,\n mapping[EngineConstants.prop.outputsMapping],\n getValueIfDefined<JSONObject>(mapping[EngineConstants.prop.outputsMappingFrame]),\n capabilityConfig\n );\n }\n return returnValue as NodeObject;\n }\n\n private async performParameterMappingOnArgsIfDefined(\n args: JSONObject,\n mapping: Partial<MappingWithInputs> | Partial<MappingWithInputsReference>,\n capabilityConfig?: CapabilityConfig,\n convertToJsonDeep = false\n ): Promise<Record<string, any>> {\n if (EngineConstants.prop.inputsReference in mapping) {\n const reference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsReference])!;\n return this.getDataAtReference(reference, args);\n }\n\n if (EngineConstants.prop.inputsMappingRef in mapping) {\n const reference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsMappingRef])!;\n const referencedMapping = this.getDataAtReference(reference, args);\n\n if (!referencedMapping || referencedMapping?.length === 0) {\n return args;\n }\n\n // Handle inputsMappingFrameRef if present\n let frame;\n if (EngineConstants.prop.inputsMappingFrameRef in mapping) {\n const frameReference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsMappingFrameRef])!;\n frame = this.getDataAtReference(frameReference, args);\n } else {\n // Use direct frame if provided\n frame = getValueIfDefined(mapping[EngineConstants.prop.inputsMappingFrame]);\n }\n\n // Perform mapping with the referenced mapping and frame\n const mappedData = await this.performMapping(args, referencedMapping, frame, capabilityConfig);\n return toJSON(mappedData, convertToJsonDeep);\n }\n\n if (EngineConstants.prop.inputsMapping in mapping) {\n const mappedData = await this.performMapping(\n args,\n (mapping as MappingWithInputs)[EngineConstants.prop.inputsMapping]!,\n getValueIfDefined(mapping[EngineConstants.prop.inputsMappingFrame]),\n capabilityConfig\n );\n return toJSON(mappedData, convertToJsonDeep);\n }\n return args;\n }\n\n private getDataAtReference(reference: string, data: JSONObject): any {\n const results = JSONPath({\n path: reference,\n json: data,\n resultType: 'value'\n });\n const isArrayOfLengthOne = Array.isArray(results) && results.length === 1;\n let result = isArrayOfLengthOne ? results[0] : results;\n if (result && typeof result === 'object' && PROP_ENTITY_VALUE in result) {\n result = result[PROP_ENTITY_VALUE];\n }\n return result;\n }\n\n private async getIntegrationInterface(\n integratedProductId: string,\n integrationType = EngineConstants.spec.integrationInterface\n ): Promise<Entity | null> {\n if (integrationType === EngineConstants.spec.integrationInterface) {\n const integrationInterface = await this.findBy({\n type: integrationType,\n [EngineConstants.prop.type]: EngineConstants.spec.openApi,\n [EngineConstants.prop.integration]: integratedProductId\n });\n return integrationInterface;\n }\n // Add support for other integration types\n return null;\n }\n\n private async findSecurityCredentialsForAccountIfDefined(accountId: string): Promise<Entity | undefined> {\n return await this.findByIfExists({\n type: EngineConstants.spec.integrationAuthenticationCredential,\n [EngineConstants.prop.accountOrUser]: accountId\n });\n }\n\n private async findgetOpenApiRuntimeAuthorizationCapabilityIfDefined(): Promise<Capability | undefined> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capability,\n [EngineConstants.prop.label]: OPEN_API_RUNTIME_AUTHORIZATION\n })) as Capability;\n }\n\n private async findRefreshCapabilityForIntegration(integrationId: string): Promise<Capability> {\n const integration = await this.findByIfExists({ id: integrationId });\n const configuredRefreshCapability = integration?.[EngineConstants.prop.refreshCapability];\n if (configuredRefreshCapability) {\n const refreshCapabilityId = getIdFromNodeObjectIfDefined(\n configuredRefreshCapability as string | ReferenceNodeObject\n );\n if (!refreshCapabilityId) {\n throw new Error(`Integration ${integrationId} has an invalid refresh capability reference.`);\n }\n const refreshCapability = (await this.findByIfExists({ id: refreshCapabilityId })) as Capability | undefined;\n if (!refreshCapability) {\n throw new Error(\n `Refresh capability ${refreshCapabilityId} configured for integration ${integrationId} was not found.`\n );\n }\n return refreshCapability;\n }\n return await this.findCapabilityWithName('getOauthTokens');\n }\n\n private async getRuntimeCredentialsWithSecurityCredentials(\n securityCredentials: Entity,\n integrationId: string,\n openApiOperationInformation: OperationWithPathInfo,\n operationArgs: JSONObject\n ): Promise<JSONObject> {\n const getOpenApiRuntimeAuthorizationCapability = await this.findgetOpenApiRuntimeAuthorizationCapabilityIfDefined();\n if (!getOpenApiRuntimeAuthorizationCapability) {\n return {};\n }\n const mapping = await this.findCapabilityIntegrationMapping(\n getOpenApiRuntimeAuthorizationCapability[PROP_ENTITY_ID],\n integrationId\n );\n if (!mapping) {\n return {};\n }\n const args = {\n securityCredentials,\n openApiExecutorOperationWithPathInfo: openApiOperationInformation,\n operationArgs\n } as JSONObject;\n const operationInfoJsonLd = await this.performParameterMappingOnArgsIfDefined(args, mapping, undefined, true);\n const headers = getValueIfDefined<JSONObject>(operationInfoJsonLd[EngineConstants.prop.headers]);\n return headers ?? {};\n }\n\n private async createOpenApiOperationExecutorWithSpec(openApiDescription: OpenApi): Promise<OpenApiOperationExecutor> {\n const executor = new OpenApiOperationExecutor();\n await executor.setOpenapiSpec(openApiDescription);\n return executor;\n }\n\n private async findCapabilityObjectMapping(capabilityId: string, object: string): Promise<CapabilityMapping> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.object]: InversePath({\n subPath: ZeroOrMorePath({ subPath: RDFS.subClassOf as string }),\n value: object\n })\n })) as CapabilityMapping;\n }\n\n private async performCapabilityMappingWithArgs(\n args: JSONValue,\n mapping: Mapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<string | undefined> {\n if (mapping[EngineConstants.prop.operationId]) {\n return getValueIfDefined<string>(mapping[EngineConstants.prop.operationId])!;\n }\n if (mapping[EngineConstants.prop.operationId]) {\n return getValueIfDefined<string>(mapping[EngineConstants.prop.operationId])!;\n }\n const capabilityInfoJsonLd = await this.performMapping(\n args,\n mapping[EngineConstants.prop.operationMapping] as NodeObject,\n undefined,\n capabilityConfig\n );\n return getValueIfDefined<string>(capabilityInfoJsonLd[EngineConstants.prop.operationId])!;\n }\n\n private async assertCapabilityParamsMatchParameterSchemas(\n capabilityParams: any,\n capability: Capability\n ): Promise<void> {\n let parametersSchemaObject = capability[EngineConstants.prop.inputs];\n if (parametersSchemaObject?.[PROP_ENTITY_ID] && Object.keys(parametersSchemaObject).length === 1) {\n parametersSchemaObject = await this.findBy({ id: parametersSchemaObject[PROP_ENTITY_ID] });\n }\n if (capabilityParams && parametersSchemaObject) {\n const capabilityParamsAsJsonLd = {\n '@context': getValueIfDefined<ContextDefinition>(capability[EngineConstants.prop.inputsContext]),\n [PROP_ENTITY_TYPE]: EngineConstants.spec.inputs,\n ...capabilityParams\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(capabilityParamsAsJsonLd, parametersSchemaObject);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `${getValueIfDefined(capability[EngineConstants.prop.label])} parameters do not conform to the schema`\n );\n }\n }\n }\n\n private async performOpenapiOperationWithCredentials(\n operationId: string,\n operationArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<AxiosResponse> {\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const restAPIInterface = await this.getIntegrationInterface(integratedProductId);\n if (!restAPIInterface) {\n throw new Error(`No integration interface found for integrated product ${integratedProductId}`);\n }\n const openApiDescription = getValueIfDefined<OpenApi>(\n restAPIInterface[EngineConstants.prop.declarativeApiDescription]\n )!;\n const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const openApiOperationInformation = await openApiExecutor.getOperationWithPathInfoMatchingOperationId(operationId);\n const securityCredentials = await this.findSecurityCredentialsForAccountIfDefined(account[PROP_ENTITY_ID]);\n let runtimeAuthorization: JSONObject = {};\n if (securityCredentials) {\n const generatedRuntimeCredentials = await this.getRuntimeCredentialsWithSecurityCredentials(\n securityCredentials,\n integratedProductId,\n openApiOperationInformation,\n operationArgs\n );\n if (generatedRuntimeCredentials && Object.keys(generatedRuntimeCredentials).length > 0) {\n runtimeAuthorization = generatedRuntimeCredentials;\n }\n }\n const apiKey = [\n getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.apiKey]),\n this.getAuthorizationHeaderFromRuntimeCredentials(runtimeAuthorization)\n ].find(Boolean);\n const configuration = {\n accessToken: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.accessToken]),\n bearerToken: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.bearerToken]),\n apiKey,\n basePath: getValueIfDefined<string>(account[EngineConstants.prop.overrideBasePath]),\n username: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.username]),\n password: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.password])\n };\n let response;\n let executeOperationOptions: AxiosRequestConfig | undefined;\n try {\n const additionalHeaders = this.getHeadersFromRuntimeCredentials(runtimeAuthorization) as any;\n if (\n additionalHeaders &&\n typeof additionalHeaders === 'object' &&\n !Array.isArray(additionalHeaders) &&\n Object.keys(additionalHeaders).length > 0\n ) {\n executeOperationOptions = { headers: additionalHeaders };\n }\n if (this.ifCapabilityStreaming(capabilityConfig)) {\n executeOperationOptions = {\n ...executeOperationOptions,\n responseType: 'stream'\n };\n } else if (this.ifCapabilityBuffering(capabilityConfig)) {\n executeOperationOptions = {\n ...executeOperationOptions,\n responseType: 'arraybuffer'\n };\n }\n response = await openApiExecutor.executeOperation(\n operationId,\n configuration,\n operationArgs,\n executeOperationOptions\n );\n } catch (error: unknown) {\n if (\n axios.isAxiosError(error) &&\n await this.isInvalidTokenError(error, integratedProductId) &&\n securityCredentials\n ) {\n const refreshCapabilityConfig = capabilityConfig\n ? {\n ...capabilityConfig,\n stream: false,\n buffer: false\n }\n : undefined;\n const refreshedConfiguration = await this.refreshSecurityCredentials(\n securityCredentials,\n integratedProductId,\n account,\n refreshCapabilityConfig\n );\n response = await openApiExecutor.executeOperation(\n operationId,\n refreshedConfiguration,\n operationArgs,\n executeOperationOptions\n );\n } else {\n throw error;\n }\n }\n return response;\n }\n\n private getHeadersFromRuntimeCredentials(runtimeCredentials: JSONObject): JSONObject {\n let returnValue: JSONObject = {};\n if (\n runtimeCredentials.headers &&\n typeof runtimeCredentials.headers === 'object' &&\n Object.keys(runtimeCredentials.headers).length > 0 &&\n !Array.isArray(runtimeCredentials.headers)\n ) {\n returnValue = runtimeCredentials.headers;\n }\n return returnValue;\n }\n\n private getAuthorizationHeaderFromRuntimeCredentials(runtimeCredentials: JSONObject): string | undefined {\n const headers = this.getHeadersFromRuntimeCredentials(runtimeCredentials);\n if (headers && 'Authorization' in headers) {\n const authorizationHeader = headers.Authorization;\n if (typeof authorizationHeader === 'string') {\n return authorizationHeader;\n }\n }\n return undefined;\n }\n\n private async isInvalidTokenError(error: AxiosError, integratedProductId: string): Promise<boolean> {\n const integrationInterface = await this.getIntegrationInterface(integratedProductId);\n if (!integrationInterface) {\n return false;\n }\n\n const errorMatcher = integrationInterface[EngineConstants.prop.invalidTokenErrorMatcher] as NodeObject;\n const errorMatcherStatus =\n errorMatcher && getValueIfDefined<string>(errorMatcher[EngineConstants.prop.invalidTokenErrorMatcherStatus]);\n const errorMatcherRegex =\n errorMatcher &&\n getValueIfDefined<string>(errorMatcher[EngineConstants.prop.invalidTokenErrorMatcherMessageRegex])!;\n if (errorMatcher && error.response?.status === errorMatcherStatus) {\n if (!errorMatcherRegex) {\n return true;\n }\n if (error.response?.statusText && new RegExp(errorMatcherRegex, 'u').test(error.response?.statusText)) {\n return true;\n }\n }\n\n return false;\n }\n\n private async refreshSecurityCredentials(\n securityCredentials: Entity,\n integrationId: string,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<OpenApiClientConfiguration> {\n const refreshCapability = await this.findRefreshCapabilityForIntegration(integrationId);\n const mapping = await this.findCapabilityIntegrationMapping(refreshCapability[PROP_ENTITY_ID], integrationId);\n if (!mapping) {\n throw new Error(\n `No mapping found for capability ${refreshCapability[PROP_ENTITY_ID]} and integration ${integrationId}`\n );\n }\n const args = {\n refreshToken: getValueIfDefined<string>(securityCredentials[EngineConstants.prop.refreshToken])!,\n jwtBearerOptions: getValueIfDefined<string>(securityCredentials[EngineConstants.prop.jwtBearerOptions])!,\n securityCredentials: securityCredentials as unknown as JSONValue,\n account: account as unknown as JSONValue,\n integrationId\n } as JSONObject;\n const operationArgs = await this.performParameterMappingOnArgsIfDefined(args, mapping, capabilityConfig, true);\n const operationInfoJsonLd = await this.performOperationMappingWithArgs({}, mapping, capabilityConfig);\n const rawReturnValue = await this.performOperation(\n operationInfoJsonLd,\n operationArgs,\n args,\n account,\n capabilityConfig,\n securityCredentials\n );\n const mappedReturnValue = await this.performReturnValueMappingWithFrameIfDefined(\n rawReturnValue,\n mapping as MappingWithOutputsMapping,\n capabilityConfig\n );\n await this.assertCapabilityReturnValueMatchesReturnTypeSchema(mappedReturnValue, refreshCapability);\n const bearerToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.bearerToken]);\n const accessToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.accessToken]);\n const refreshToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.refreshToken]);\n if (bearerToken) {\n securityCredentials[EngineConstants.prop.bearerToken] = bearerToken;\n }\n if (accessToken) {\n securityCredentials[EngineConstants.prop.accessToken] = accessToken;\n }\n if (refreshToken) {\n securityCredentials[EngineConstants.prop.refreshToken] = refreshToken;\n }\n await this.save(securityCredentials);\n return { accessToken, bearerToken };\n }\n\n private getOauthConfigurationFromSecurityCredentials(securityCredentialsSchema: Entity): OpenApiClientConfiguration {\n const username = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.username]);\n const password = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.password]);\n const accessToken = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.accessToken]);\n return { username, password, accessToken };\n }\n\n private async assertCapabilityReturnValueMatchesReturnTypeSchema(\n returnValue: OrArray<NodeObject>,\n capability: Capability\n ): Promise<void> {\n let returnTypeSchemaObject = capability[EngineConstants.prop.outputs];\n if (returnTypeSchemaObject?.[PROP_ENTITY_ID] && Object.keys(returnTypeSchemaObject).length === 1) {\n returnTypeSchemaObject = await this.findBy({ id: returnTypeSchemaObject[PROP_ENTITY_ID] });\n }\n let report: ValidationReport | undefined;\n if (returnValue && returnTypeSchemaObject) {\n if (Array.isArray(returnValue)) {\n if (returnValue.some((valueItem): boolean => PROP_ENTITY_ID in valueItem)) {\n returnTypeSchemaObject[SHACL.targetNode] = returnValue.reduce(\n (nodes: ReferenceNodeObject[], outputItem): ReferenceNodeObject[] => {\n if (outputItem[PROP_ENTITY_ID]) {\n nodes.push({ [PROP_ENTITY_ID]: outputItem[PROP_ENTITY_ID] });\n }\n return nodes;\n },\n []\n );\n } else {\n const targetClasses = returnValue.reduce(\n (nodes: ReferenceNodeObject[], outputItem): ReferenceNodeObject[] => {\n if (outputItem[PROP_ENTITY_TYPE]) {\n const type = Array.isArray(outputItem[PROP_ENTITY_TYPE])\n ? outputItem[PROP_ENTITY_TYPE][0]\n : outputItem[PROP_ENTITY_TYPE];\n if (!nodes.includes({ [PROP_ENTITY_ID]: type })) {\n nodes.push({ [PROP_ENTITY_ID]: type });\n }\n }\n return nodes;\n },\n []\n );\n if (targetClasses.length > 0) {\n returnTypeSchemaObject[SHACL.targetClass] = targetClasses;\n }\n }\n report = await this.convertToQuadsAndValidateAgainstShape(returnValue, returnTypeSchemaObject);\n } else if (Object.keys(returnValue).length > 0) {\n if (returnValue[PROP_ENTITY_ID]) {\n returnTypeSchemaObject[SHACL.targetNode] = { [PROP_ENTITY_ID]: returnValue[PROP_ENTITY_ID] };\n } else if (returnValue[PROP_ENTITY_TYPE]) {\n returnTypeSchemaObject[SHACL.targetClass] = {\n [PROP_ENTITY_ID]: Array.isArray(returnValue[PROP_ENTITY_TYPE])\n ? returnValue[PROP_ENTITY_TYPE][0]\n : returnValue[PROP_ENTITY_TYPE]!\n };\n }\n report = await this.convertToQuadsAndValidateAgainstShape(returnValue, returnTypeSchemaObject);\n }\n }\n\n if (report && !report?.conforms) {\n throw new Error(\n `Return value ${\n Array.isArray(returnValue) ? 'array' : returnValue[PROP_ENTITY_ID]\n } does not conform to the schema`\n );\n }\n }\n\n private async convertToQuadsAndValidateAgainstShape(\n value: OrArray<NodeObject>,\n shape: NodeObject\n ): Promise<ValidationReport> {\n const valueAsQuads = await convertJsonLdToQuads(Array.isArray(value) ? value : [value]);\n const shapeQuads = await convertJsonLdToQuads(shape);\n const validator = new SHACLValidator(shapeQuads);\n return validator.validate(valueAsQuads);\n }\n\n private async performOauthSecuritySchemeStageWithCredentials(\n operationInfo: NodeObject,\n operationParameters: JSONObject,\n account: Entity,\n securityCredentials?: Entity\n ): Promise<OperationResponse> {\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const restAPIInterface = await this.getIntegrationInterface(integratedProductId);\n if (!restAPIInterface) {\n throw new Error(`No integration interface found for integrated product ${integratedProductId}`);\n }\n const openApiDescription = getValueIfDefined<OpenApi>(\n restAPIInterface[EngineConstants.prop.declarativeApiDescription]\n )!;\n securityCredentials ||= await this.findSecurityCredentialsForAccountIfDefined(account[PROP_ENTITY_ID]);\n let configuration: OpenApiClientConfiguration;\n if (securityCredentials) {\n configuration = this.getOauthConfigurationFromSecurityCredentials(securityCredentials);\n operationParameters.client_id = getValueIfDefined<string>(securityCredentials[EngineConstants.prop.username])!;\n } else {\n configuration = {};\n }\n const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);\n const response = await openApiExecutor.executeSecuritySchemeStage(\n getValueIfDefined(operationInfo[EngineConstants.prop.schemeName])!,\n getValueIfDefined(operationInfo[EngineConstants.prop.oauthFlow])!,\n getValueIfDefined(operationInfo[EngineConstants.prop.stage])!,\n configuration,\n operationParameters\n );\n if ('codeVerifier' in response && 'authorizationUrl' in response) {\n return {\n data: response as unknown as JSONObject,\n operationParameters\n };\n }\n return this.axiosResponseAndParamsToOperationResponse(response, operationParameters, operationParameters);\n }\n\n private async getDataFromDataSource(\n dataSourceId: string,\n capabilityConfig?: CapabilityConfig\n ): Promise<OperationResponse> {\n const dataSource = await this.findBy({ id: dataSourceId });\n if (dataSource[PROP_ENTITY_TYPE] === EngineConstants.spec.jsonDataSource) {\n const data = this.getDataFromJsonDataSource(dataSource, capabilityConfig);\n return { data, operationParameters: {}};\n }\n throw new Error(`DataSource type ${dataSource[PROP_ENTITY_TYPE]} is not supported.`);\n }\n\n private getDataFromJsonDataSource(dataSource: NodeObject, capabilityConfig?: CapabilityConfig): JSONObject {\n if (dataSource[EngineConstants.prop.source]) {\n const sourceValue = getValueIfDefined<string>(dataSource[EngineConstants.prop.source])!;\n return this.getJsonDataFromSource(sourceValue, capabilityConfig);\n }\n return getValueIfDefined<JSONObject>(dataSource[EngineConstants.prop.data])!;\n }\n\n private getJsonDataFromSource(source: string, capabilityConfig?: CapabilityConfig): JSONObject {\n const inputFiles = {\n ...this.inputFiles,\n ...capabilityConfig?.inputFiles\n };\n if (source in inputFiles) {\n const file = inputFiles[source];\n if (typeof file === 'string') {\n return JSON.parse(file);\n }\n return file;\n }\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO add support for remote sources\n throw new Error(`Failed to get data from source ${source}`);\n }\n\n private throwValidationReportError(report: ValidationReport, errorMessage: string): void {\n const reportMessages = this.validationReportToMessages(report);\n throw new Error(`${errorMessage}\\n\\n${reportMessages.join('\\n')}`);\n }\n\n private validationReportToMessages(report: ValidationReport): string[] {\n const reportMessages = [];\n for (const result of report.results) {\n const pathValue = result.path?.value;\n if (result.message.length === 0) {\n const message = `${pathValue}: Invalid due to ${result.sourceConstraintComponent?.value}`;\n reportMessages.push(message);\n } else {\n const resultMessages = result.message.map((message): string => `${message.value}`).join(', ');\n const message = `${pathValue}: ${resultMessages}`;\n reportMessages.push(message);\n }\n }\n return reportMessages;\n }\n\n private ifCapabilityStreaming(capabilityConfig?: CapabilityConfig): boolean {\n return Boolean(capabilityConfig && 'stream' in capabilityConfig && capabilityConfig.stream);\n }\n\n private ifCapabilityBuffering(capabilityConfig?: CapabilityConfig): boolean {\n return Boolean(capabilityConfig && 'buffer' in capabilityConfig && capabilityConfig.buffer);\n }\n\n private isJavaScriptCode(text: string): boolean {\n if (!text) {\n return false;\n }\n // Trim the text to handle leading/trailing whitespace\n const trimmed = text.trim();\n\n // First, quickly check if it looks like JSON (starts with { or [)\n const looksLikeJson = /^\\s*[[{]/.test(trimmed) && /[\\]}]\\s*$/.test(trimmed);\n\n if (looksLikeJson) {\n try {\n // If it can be parsed as JSON, it's likely an RML mapping\n JSON.parse(trimmed);\n return false;\n } catch {\n // If it looks like JSON but can't be parsed, it might be code\n // Continue with other checks\n }\n }\n\n // Check for common JavaScript patterns that wouldn't appear in JSON\n const jsPatterns = [\n /function\\s+[$A-Z_a-z][\\w$]*\\s*\\(/, // Function declaration\n /const\\s+[$A-Z_a-z][\\w$]*/, // Const declaration\n /let\\s+[$A-Z_a-z][\\w$]*/, // Let declaration\n /var\\s+[$A-Z_a-z][\\w$]*/, // Var declaration\n /if\\s*\\(/, // If statement\n /for\\s*\\(/, // For loop\n /while\\s*\\(/, // While loop\n /=>|return |console\\./, // Arrow functions, return statements, console usage\n /import\\s+|export\\s+/, // ES6 imports/exports\n /class\\s+[$A-Z_a-z][\\w$]*/, // Class declaration\n /\\/\\/|\\/\\*|\\*\\// // Comments\n ];\n\n // If it matches any JS pattern, it's likely code\n return jsPatterns.some(pattern => pattern.test(trimmed));\n }\n\n private ensureNodeObject(result: any): NodeObject {\n // Handle null/undefined results\n if (result === null || result === undefined) {\n return {};\n }\n\n // If it's already a NodeObject with proper formatting, return as is\n if (\n typeof result === 'object' &&\n !Array.isArray(result) &&\n (result[PROP_ENTITY_ID] !== undefined ||\n result[PROP_ENTITY_TYPE] !== undefined ||\n result['@context'] !== undefined ||\n result['@graph'] !== undefined)\n ) {\n return result as NodeObject;\n }\n\n // Handle arrays - convert to @graph\n if (Array.isArray(result)) {\n // Check if items in array are already objects\n const convertedItems = result.map(item => {\n if (typeof item === 'object' && item !== null) {\n // Already object, but ensure it has @type if not present\n if (!item[PROP_ENTITY_TYPE] && !item[PROP_ENTITY_ID] && !item[PROP_ENTITY_VALUE]) {\n return { [PROP_ENTITY_TYPE]: 'skl:Result', ...item };\n }\n return item;\n }\n // Convert primitives to objects with @value\n return { [PROP_ENTITY_VALUE]: item };\n });\n\n return {\n '@context': {\n skl: SKL_NAMESPACE\n },\n '@graph': convertedItems\n };\n }\n\n // Handle primitive values (string, number, boolean)\n if (typeof result !== 'object') {\n return {\n [PROP_ENTITY_VALUE]: result\n };\n }\n\n // Handle plain objects (not arrays, not null)\n // If it's a plain object but not in NodeObject format, add @type\n return {\n [PROP_ENTITY_TYPE]: 'skl:Result',\n '@context': {\n skl: SKL_NAMESPACE\n },\n ...result\n };\n }\n\n private async executeCodeBlocks(\n codeBlocks: NodeObject[],\n args: JSONValue,\n executionOptions: ExecutionOptions\n ): Promise<NodeObject> {\n const results = [];\n let updatedArgs = (args as Record<string, any>) || {};\n for (const codeBlock of codeBlocks) {\n const code = getValueIfDefined(codeBlock[EngineConstants.prop.codeBody])!;\n if (code) {\n const result = await this.executeJavaScriptMapping(updatedArgs, code as string, executionOptions);\n updatedArgs = {\n ...updatedArgs,\n ...result\n };\n results.push(result);\n }\n }\n return results.length > 0 ? results[results.length - 1] : {};\n }\n\n private async executeJavaScriptMapping(\n args: JSONValue,\n code: string,\n _executionOptions: ExecutionOptions\n ): Promise<NodeObject> {\n try {\n // Configure execution options\n const executionOptions: ExecutionOptions = {\n timeout: 60 * 60 * 1000, // 1 hour\n functionName: 'main',\n allowNetwork: true,\n allowedDomains: [],\n allowEnv: true,\n debugMode: true,\n allowRead: true,\n ..._executionOptions\n };\n\n if (!this.codeExecutor) {\n throw new Error('Code executor not set. Please set a code executor using setCodeExecutor()');\n }\n\n // Execute the code\n const executionResult = await this.codeExecutor.execute(code, args as Record<string, any>, executionOptions);\n\n // Handle execution errors\n if (executionResult?.error) {\n throw new Error(`Code execution error: ${executionResult.error?.message ?? 'Unknown error'}`);\n }\n\n // This is a patch to return the output as it is without converting to NodeObject\n // This is needed for some api inputs. We can try doing this using the frame.\n if (executionResult?.result?.rawOutput) {\n return executionResult?.result?.rawOutput;\n }\n // Convert the result to a NodeObject\n return this.ensureNodeObject(executionResult?.result ?? executionResult);\n } catch (error: unknown) {\n throw new Error(\n `Failed to execute JavaScript mapping: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n // Expose global hooks to users\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n get hooks(): typeof globalHooks {\n return globalHooks;\n }\n\n public async prepareContextForType(typeSpecOrId: any): Promise<Record<string, any>> {\n const typeSpecs = [];\n if (typeof typeSpecOrId === 'string') {\n typeSpecs.push(\n await this.getSuperClassesOfObject(typeSpecOrId),\n await this.findBy({ id: typeSpecOrId })\n );\n } else {\n typeSpecs.push(typeSpecOrId);\n }\n const context: Record<string, any> = {};\n\n for (const typeSpec of typeSpecs) {\n const properties = typeSpec[SHACL.property] ?? [];\n for (const property of ensureArray(properties)) {\n const dataType = property[SHACL.datatype]?.['@id'];\n const nodeKind = property[SHACL.nodeKind]?.['@id'];\n const path = property[SHACL.path]?.['@id'];\n if (nodeKind === SHACL.IRI) {\n context[path] = {\n '@type': '@id'\n };\n } else {\n context[path] = {\n '@type': dataType\n };\n }\n }\n }\n return context;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SklEngine.js","sourceRoot":"","sources":["../src/SklEngine.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-div-regex */\n/* eslint-disable line-comment-position */\n\n/* eslint-disable no-inline-comments */\n/* eslint-disable require-unicode-regexp */\n \n \n \n/* eslint-disable @typescript-eslint/naming-convention */\nimport type { OpenApi, OpenApiClientConfiguration, OperationWithPathInfo } from '@comake/openapi-operation-executor';\nimport { OpenApiOperationExecutor } from '@comake/openapi-operation-executor';\nimport { getIdFromNodeObjectIfDefined, XSD, type ReferenceNodeObject } from '@comake/rmlmapper-js';\nimport type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport axios from 'axios';\nimport type { ContextDefinition, GraphObject, NodeObject } from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport { JSONPath } from 'jsonpath-plus';\nimport SHACLValidator from 'rdf-validate-shacl';\nimport type ValidationReport from 'rdf-validate-shacl/src/validation-report';\nimport {\n EngineConstants,\n OPEN_API_RUNTIME_AUTHORIZATION,\n PROP_ENTITY_ID,\n PROP_ENTITY_TYPE,\n PROP_ENTITY_VALUE,\n RDF,\n RDFS,\n RML_LIST,\n SHACL\n} from './constants';\nimport { globalCustomCapabilities } from './customCapabilities';\nimport { globalHooks, HookStages, HookTypes } from './hooks/globalHooks';\nimport type { ExecutionOptions } from './JsExecutor';\nimport type { ICodeExecutor } from './JsExecutor/types';\nimport { Logger } from './logger';\nimport { Mapper } from './mapping/Mapper';\nimport type { ReadCacheOperation, ReadCachePolicy, ReadCacheStore, SklEngineOptions } from './SklEngineOptions';\nimport type { FindOperator } from './storage/FindOperator';\nimport type { FindAllOptions, FindOneOptions, FindOptionsWhere } from './storage/FindOptionsTypes';\nimport type { GroupByOptions, GroupByResponse } from './storage/GroupOptionTypes';\nimport { Exists } from './storage/operator/Exists';\nimport { In } from './storage/operator/In';\nimport { InversePath } from './storage/operator/InversePath';\nimport { Not } from './storage/operator/Not';\nimport { OneOrMorePath } from './storage/operator/OneOrMorePath';\nimport { SequencePath } from './storage/operator/SequencePath';\nimport { ZeroOrMorePath } from './storage/operator/ZeroOrMorePath';\nimport type { QueryAdapter, RawQueryResult } from './storage/query-adapter/QueryAdapter';\nimport { SparqlQueryAdapter } from './storage/query-adapter/sparql/SparqlQueryAdapter';\nimport { PerformanceLogger } from './util/PerformanceLogger';\nimport { buildReadCacheKey, ReadCacheSingleflight } from './util/ReadCacheHelper';\n// Import './util/safeJsonStringify';\nimport type {\n Callbacks,\n Capability,\n CapabilityConfig,\n CapabilityMapping,\n Entity,\n JSONObject,\n JSONValue,\n Mapping,\n MappingWithInputs,\n MappingWithInputsReference,\n MappingWithOutputsMapping,\n MappingWithParallel,\n MappingWithSeries,\n OperationResponse,\n OrArray,\n RdfList,\n SeriesCapabilityArgs,\n SKLEngineInterface,\n TriggerMapping\n} from './util/Types';\nimport { convertJsonLdToQuads, ensureArray, getValueIfDefined, toJSON } from './util/Util';\nimport { SKL_DATA_NAMESPACE, SKL_NAMESPACE } from './util/Vocabularies';\n\nexport type CapabilityHandler = <T extends OrArray<NodeObject> = OrArray<NodeObject>>(\n params: JSONObject,\n capabilityConfig?: CapabilityConfig\n) => Promise<T>;\nexport type CapabilityInterface = Record<string, CapabilityHandler>;\n\nexport type MappingResponseOption<T extends boolean> = T extends true ? JSONObject : NodeObject;\n\nexport type WriteOptions = { bypassHooks?: boolean };\nconst DEFAULT_READ_CACHE_TTL_MS = 60_000;\nconst READ_CACHE_ENVELOPE_MARKER = '__sklReadCacheEnvelopeV1';\ntype ReadCacheEnvelope<T> = {\n [READ_CACHE_ENVELOPE_MARKER]: true;\n value: T;\n};\n\nexport class SKLEngine implements SKLEngineInterface {\n private readonly queryAdapter: QueryAdapter;\n private readonly functions?: Record<string, (args: any | any[]) => any>;\n private readonly inputFiles?: Record<string, string>;\n private readonly globalCallbacks?: Callbacks;\n private readonly disableValidation?: boolean;\n public readonly capability: CapabilityInterface;\n private codeExecutor: ICodeExecutor | undefined;\n private readonly skdsEndpointUrl: string;\n private readonly scriptPath: string;\n private readonly logger: Logger;\n private readonly readCache?: ReadCacheStore;\n private readonly readCachePolicy?: ReadCachePolicy;\n private readonly readCacheNamespace?: string;\n private readonly readCacheSingleflight = new ReadCacheSingleflight();\n public constructor(options: SklEngineOptions) {\n this.queryAdapter = new SparqlQueryAdapter(options);\n this.disableValidation = options.disableValidation;\n this.globalCallbacks = options.callbacks;\n this.inputFiles = options.inputFiles;\n this.skdsEndpointUrl = (options as any).endpointUrl;\n this.scriptPath = (options as any).scriptPath;\n this.readCache = options.readCache;\n this.readCachePolicy = options.readCachePolicy;\n this.readCacheNamespace = options.readCacheNamespace;\n if (options.functions) {\n this.functions = Object.fromEntries(\n Object.entries(options.functions).map(([key, func]) => [\n key,\n (data: Record<string | number, any> = {}) => {\n // Add the SKL instance to the data object\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n data.skl = this;\n\n // Call the original function\n return func(data);\n }\n ])\n );\n }\n this.logger = Logger.getInstance(options.debugMode);\n\n // eslint-disable-next-line func-style\n const getCapabilityHandler =\n (getTarget: CapabilityInterface, property: string): CapabilityHandler =>\n async <T extends OrArray<NodeObject> = OrArray<NodeObject>>(\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<T> =>\n this.executeCapabilityByName(property, capabilityArgs, capabilityConfig) as Promise<T>;\n this.capability = new Proxy({} as CapabilityInterface, { get: getCapabilityHandler });\n }\n\n public setCodeExecutor(codeExecutor: ICodeExecutor): void {\n this.codeExecutor = codeExecutor;\n }\n\n public async executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]> {\n return await this.queryAdapter.executeRawQuery<T>(query);\n }\n\n public async executeRawUpdate(query: string): Promise<void> {\n return await this.queryAdapter.executeRawUpdate(query);\n }\n\n public async executeRawConstructQuery(query: string, frame?: Frame): Promise<GraphObject> {\n return await this.queryAdapter.executeRawConstructQuery(query, frame);\n }\n\n private cloneForReadCache<T>(value: T): T {\n try {\n return structuredClone(value);\n } catch {\n return value;\n }\n }\n\n private wrapReadCacheValue<T>(value: T): ReadCacheEnvelope<T> {\n return {\n [READ_CACHE_ENVELOPE_MARKER]: true,\n value\n };\n }\n\n private isReadCacheEnvelope<T>(value: unknown): value is ReadCacheEnvelope<T> {\n if (!value || typeof value !== 'object') {\n return false;\n }\n return (value as Record<string, unknown>)[READ_CACHE_ENVELOPE_MARKER] === true;\n }\n\n private stripBypassCacheFromFindOneOptions(options?: FindOneOptions): FindOneOptions | undefined {\n if (!options) {\n return options;\n }\n const { bypassCache, ...rest } = options;\n return rest;\n }\n\n private stripBypassCacheFromFindAllOptions(options?: FindAllOptions): FindAllOptions | undefined {\n if (!options) {\n return options;\n }\n const { bypassCache, ...rest } = options;\n return rest;\n }\n\n private stripBypassCacheFromWhere(where?: FindOptionsWhere): FindOptionsWhere | undefined {\n if (!where) {\n return where;\n }\n const { bypassCache, ...rest } = where;\n return rest;\n }\n\n private async runReadWithCache<T>(params: {\n operation: ReadCacheOperation;\n args: readonly unknown[];\n bypassCache?: boolean;\n execute: () => Promise<T>;\n }): Promise<T> {\n if (params.bypassCache) {\n return await params.execute();\n }\n\n if (!this.readCache || !this.readCachePolicy) {\n return await params.execute();\n }\n\n const policyDecision = this.readCachePolicy({\n operation: params.operation,\n args: params.args,\n endpointUrl: this.skdsEndpointUrl,\n namespace: this.readCacheNamespace\n });\n if (!policyDecision.cache) {\n return await params.execute();\n }\n\n const ttlMs = policyDecision.ttlMs ?? DEFAULT_READ_CACHE_TTL_MS;\n if (ttlMs <= 0) {\n return await params.execute();\n }\n\n const cacheKey = buildReadCacheKey({\n operation: params.operation,\n args: params.args,\n endpointUrl: this.skdsEndpointUrl,\n namespace: this.readCacheNamespace,\n keyHint: policyDecision.keyHint\n });\n\n return await this.readCacheSingleflight.do(cacheKey, async() => {\n try {\n const cached = await this.readCache?.get(cacheKey);\n if (cached !== undefined) {\n if (this.isReadCacheEnvelope<T>(cached)) {\n return this.cloneForReadCache(cached.value);\n }\n return this.cloneForReadCache(cached as T);\n }\n } catch (error) {\n this.logger.debug('Read cache lookup failed; continuing without cache', error as any);\n }\n\n const result = await params.execute();\n\n try {\n await this.readCache?.set(cacheKey, this.wrapReadCacheValue(this.cloneForReadCache(result)), ttlMs);\n } catch (error) {\n this.logger.debug('Read cache write failed; continuing without cache', error as any);\n }\n\n return result;\n });\n }\n\n public async find(options?: FindOneOptions): Promise<Entity> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindOneOptions(options);\n\n return PerformanceLogger.withSpanRoot('SklEngine.find', async() => {\n const context = {\n entities: [],\n operation: 'find',\n operationParameters: { options: optionsWithoutBypass },\n sklEngine: this\n };\n\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n\n try {\n const entity = await this.runReadWithCache({\n operation: 'find',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.find(optionsWithoutBypass)\n });\n if (!entity) {\n throw new Error(`No schema found with fields matching ${JSON.stringify(optionsWithoutBypass)}`);\n }\n\n const updatedContext = { ...context, entities: [entity]};\n const afterHookResult = await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entity);\n\n return afterHookResult || entity;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options: optionsWithoutBypass });\n }\n\n public async findBy(where: FindOptionsWhere, notFoundErrorMessage?: string): Promise<Entity> {\n const bypassCache = where?.bypassCache;\n const whereWithoutBypass = this.stripBypassCacheFromWhere(where)!;\n\n return PerformanceLogger.withSpanRoot('SklEngine.findBy', async() => {\n const context = {\n entities: [],\n operation: 'findBy',\n operationParameters: { where: whereWithoutBypass },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entity = await this.runReadWithCache({\n operation: 'findBy',\n args: [whereWithoutBypass, notFoundErrorMessage],\n bypassCache,\n execute: async() => await this.queryAdapter.findBy(whereWithoutBypass)\n });\n if (entity) {\n const updatedContext = { ...context, entities: [entity]};\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entity);\n return entity;\n }\n throw new Error(notFoundErrorMessage ?? `No schema found with fields matching ${JSON.stringify(whereWithoutBypass)}`);\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { where: whereWithoutBypass });\n }\n\n public async findByIfExists(options: FindOptionsWhere): Promise<Entity | undefined> {\n try {\n const entity = await this.findBy(options);\n return entity;\n } catch {\n return undefined;\n }\n }\n\n public async findAll(options?: FindAllOptions): Promise<Entity[]> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindAllOptions(options);\n\n return PerformanceLogger.withSpanRoot('SklEngine.findAll', async() => {\n const context = {\n entities: [],\n operation: 'findAll',\n operationParameters: { options: optionsWithoutBypass },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entities = await this.runReadWithCache({\n operation: 'findAll',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.findAll(optionsWithoutBypass)\n });\n const updatedContext = { ...context, entities };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entities);\n return entities;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options: optionsWithoutBypass });\n }\n\n public async groupBy(options: GroupByOptions): Promise<GroupByResponse> {\n return PerformanceLogger.withSpanRoot('SklEngine.groupBy', async() => {\n const context = {\n entities: [],\n operation: 'groupBy',\n operationParameters: { options },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const result = await this.queryAdapter.groupBy(options);\n const updatedContext = { ...context, result };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, result);\n return result;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { options });\n }\n\n public async findAllBy(where: FindOptionsWhere): Promise<Entity[]> {\n return PerformanceLogger.withSpanRoot('SklEngine.findAllBy', async() => {\n const context = {\n entities: [],\n operation: 'findAllBy',\n operationParameters: { where },\n sklEngine: this\n };\n await globalHooks.execute(HookTypes.READ, HookStages.BEFORE, context);\n try {\n const entities = await this.queryAdapter.findAllBy(where);\n const updatedContext = { ...context, entities };\n await globalHooks.execute(HookTypes.READ, HookStages.AFTER, updatedContext, entities);\n return entities;\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.READ, HookStages.ERROR, context, error);\n throw error;\n }\n }, { where });\n }\n\n public async exists(options?: FindAllOptions): Promise<boolean> {\n return PerformanceLogger.withSpanRoot('SklEngine.exists', async() => this.queryAdapter.exists(options), { options });\n }\n\n public async count(options?: FindAllOptions): Promise<number> {\n const bypassCache = options?.bypassCache;\n const optionsWithoutBypass = this.stripBypassCacheFromFindAllOptions(options);\n\n return PerformanceLogger.withSpanRoot(\n 'SklEngine.count',\n async() =>\n await this.runReadWithCache({\n operation: 'count',\n args: [optionsWithoutBypass],\n bypassCache,\n execute: async() => await this.queryAdapter.count(optionsWithoutBypass)\n }),\n { options: optionsWithoutBypass }\n );\n }\n\n public async save(entity: Entity, options?: WriteOptions): Promise<Entity>;\n public async save(entities: Entity[], options?: WriteOptions): Promise<Entity[]>;\n public async save(entityOrEntities: Entity | Entity[], options?: WriteOptions): Promise<Entity | Entity[]> {\n return PerformanceLogger.withSpanRoot('SklEngine.save', async() => {\n const entityArray = Array.isArray(entityOrEntities) ? entityOrEntities : [entityOrEntities];\n const isSingleEntity = !Array.isArray(entityOrEntities);\n\n await globalHooks.executeBeforeCreate(entityArray, { sklEngine: this, bypassHooks: options?.bypassHooks });\n\n try {\n await this.validateEntitiesConformToObjectSchema(entityArray);\n const savedEntities = await this.queryAdapter.save(entityArray);\n await globalHooks.executeAfterCreate(savedEntities, { sklEngine: this, bypassHooks: options?.bypassHooks });\n return isSingleEntity ? savedEntities[0] : savedEntities;\n } catch (error) {\n await globalHooks.executeErrorCreate(entityArray, error as Error, { sklEngine: this, bypassHooks: options?.bypassHooks });\n throw error;\n }\n }, { entityCount: Array.isArray(entityOrEntities) ? entityOrEntities.length : 1 });\n }\n\n public async update(id: string, attributes: Partial<Entity>, options?: WriteOptions): Promise<void>;\n public async update(ids: string[], attributes: Partial<Entity>, options?: WriteOptions): Promise<void>;\n public async update(idOrIds: string | string[], attributes: Partial<Entity>, options?: WriteOptions): Promise<void> {\n return PerformanceLogger.withSpanRoot('SklEngine.update', async() => {\n const idArray = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n const isSingleEntity = !Array.isArray(idOrIds);\n\n await globalHooks.execute(HookTypes.UPDATE, HookStages.BEFORE, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n\n try {\n if (idArray.length > 1) {\n await this.validateEntitiesWithIdsConformsToObjectSchemaForAttributes(idArray, attributes);\n } else {\n await this.validateEntityWithIdConformsToObjectSchemaForAttributes(idArray[0], attributes);\n }\n await this.queryAdapter.update(isSingleEntity ? idArray[0] : (idArray as any), attributes);\n\n await globalHooks.execute(HookTypes.UPDATE, HookStages.AFTER, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n } catch (error: unknown) {\n await globalHooks.execute(HookTypes.UPDATE, HookStages.ERROR, {\n entities: [],\n operation: 'update',\n operationParameters: { idArray, attributes },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n }, error);\n throw error;\n }\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async validateEntitiesConformToObjectSchema(entities: Entity[]): Promise<void> {\n const entitiesByType = this.groupEntitiesByType(entities);\n for (const type of Object.keys(entitiesByType)) {\n const object = await this.findByIfExists({ id: type });\n if (object) {\n const parentObjects = await this.getSuperClassesOfObject(type);\n for (const currentObject of [object, ...parentObjects]) {\n const entitiesOfType = entitiesByType[type];\n const nounSchemaWithTarget = {\n ...currentObject,\n [SHACL.targetNode]: entitiesOfType.map(\n (entity): ReferenceNodeObject => ({ [PROP_ENTITY_ID]: entity[PROP_ENTITY_ID] })\n )\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(entitiesOfType, nounSchemaWithTarget);\n if (!report.conforms) {\n const entityIds = entitiesOfType.map((entity): string => entity[PROP_ENTITY_ID]);\n this.throwValidationReportError(\n report,\n `Entity ${entityIds.join(', ')} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n }\n\n private groupEntitiesByType(entities: Entity[]): Record<string, Entity[]> {\n return entities.reduce((groupedEntities: Record<string, Entity[]>, entity): Record<string, Entity[]> => {\n const entityTypes = Array.isArray(entity[PROP_ENTITY_TYPE])\n ? entity[PROP_ENTITY_TYPE]\n : [entity[PROP_ENTITY_TYPE]];\n for (const type of entityTypes) {\n if (!groupedEntities[type]) {\n groupedEntities[type] = [];\n }\n groupedEntities[type].push(entity);\n }\n return groupedEntities;\n }, {});\n }\n\n private async getSuperClassesOfObject(object: string): Promise<Entity[]> {\n return await this.getParentsOfSelector(object);\n }\n\n private async getSuperClassesOfObjects(nouns: string[]): Promise<Entity[]> {\n return await this.getParentsOfSelector(In(nouns));\n }\n\n private async getParentsOfSelector(selector: string | FindOperator<any, any>): Promise<Entity[]> {\n return await this.findAll({\n where: {\n id: InversePath({\n subPath: OneOrMorePath({ subPath: RDFS.subClassOf as string }),\n value: selector\n })\n }\n });\n }\n\n private async validateEntityConformsToObjectSchema(entity: Entity): Promise<void> {\n const nounIds = Array.isArray(entity[PROP_ENTITY_TYPE]) ? entity[PROP_ENTITY_TYPE] : [entity[PROP_ENTITY_TYPE]];\n const directObjects = await this.findAllBy({ id: In(nounIds) });\n if (directObjects.length > 0) {\n const existingObjectIds = directObjects.map((object): string => object[PROP_ENTITY_ID]);\n const parentObjects = await this.getSuperClassesOfObjects(existingObjectIds);\n for (const currentObject of [...directObjects, ...parentObjects]) {\n const nounSchemaWithTarget = {\n ...currentObject,\n [SHACL.targetNode]: { [PROP_ENTITY_ID]: entity[PROP_ENTITY_ID] }\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(entity, nounSchemaWithTarget);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `Entity ${entity[PROP_ENTITY_ID]} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n\n private async validateEntitiesWithIdsConformsToObjectSchemaForAttributes(\n ids: string[],\n attributes: Partial<Entity>\n ): Promise<void> {\n for (const id of ids) {\n await this.validateEntityWithIdConformsToObjectSchemaForAttributes(id, attributes);\n }\n }\n\n private async getObjectsAndParentObjectsOfEntity(id: string): Promise<Entity[]> {\n return await this.findAllBy({\n id: InversePath({\n subPath: SequencePath({\n subPath: [RDF.type, ZeroOrMorePath({ subPath: RDFS.subClassOf as string })]\n }),\n value: id\n })\n });\n }\n\n private async validateEntityWithIdConformsToObjectSchemaForAttributes(\n id: string,\n attributes: Partial<Entity>\n ): Promise<void> {\n const nouns = await this.getObjectsAndParentObjectsOfEntity(id);\n for (const currentObject of nouns) {\n if (SHACL.property in currentObject) {\n const nounProperties = ensureArray(currentObject[SHACL.property] as OrArray<NodeObject>).filter(\n (property): boolean => {\n const path = property[SHACL.path];\n if (typeof path === 'string' && path in attributes) {\n return true;\n }\n if (typeof path === 'object' && PROP_ENTITY_ID in path! && (path[PROP_ENTITY_ID] as string) in attributes) {\n return true;\n }\n return false;\n }\n );\n if (nounProperties.length > 0) {\n const nounSchemaWithTarget = {\n [PROP_ENTITY_TYPE]: SHACL.NodeShape,\n [SHACL.targetNode]: { [PROP_ENTITY_ID]: id },\n [SHACL.property]: nounProperties\n };\n const attributesWithId = { ...attributes, [PROP_ENTITY_ID]: id };\n const report = await this.convertToQuadsAndValidateAgainstShape(attributesWithId, nounSchemaWithTarget);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `Entity ${id} does not conform to the ${currentObject[PROP_ENTITY_ID]} schema.`\n );\n }\n }\n }\n }\n }\n\n public async delete(id: string, options?: WriteOptions): Promise<void>;\n public async delete(ids: string[], options?: WriteOptions): Promise<void>;\n public async delete(idOrIds: string | string[], options?: WriteOptions): Promise<void> {\n return PerformanceLogger.withSpanRoot('SklEngine.delete', async() => {\n const idArray = Array.isArray(idOrIds) ? idOrIds : [idOrIds];\n\n await globalHooks.execute(HookTypes.DELETE, HookStages.BEFORE, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n\n try {\n await this.queryAdapter.delete(idArray);\n\n await globalHooks.execute(HookTypes.DELETE, HookStages.AFTER, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n });\n } catch (error) {\n await globalHooks.execute(HookTypes.DELETE, HookStages.ERROR, {\n entities: [],\n operation: 'delete',\n operationParameters: { idArray },\n sklEngine: this,\n bypassHooks: options?.bypassHooks\n }, error);\n throw error;\n }\n }, { idCount: Array.isArray(idOrIds) ? idOrIds.length : 1 });\n }\n\n public async destroy(entity: Entity): Promise<Entity>;\n public async destroy(entities: Entity[]): Promise<Entity[]>;\n public async destroy(entityOrEntities: Entity | Entity[]): Promise<Entity | Entity[]> {\n if (Array.isArray(entityOrEntities)) {\n return await this.queryAdapter.destroy(entityOrEntities);\n }\n return await this.queryAdapter.destroy(entityOrEntities);\n }\n\n public async destroyAll(): Promise<void> {\n return await this.queryAdapter.destroyAll();\n }\n\n public async performMapping(\n args: JSONValue,\n mapping: OrArray<NodeObject>,\n frame?: Record<string, any>,\n capabilityConfig?: CapabilityConfig,\n jsExecutionOptions?: ExecutionOptions\n ): Promise<NodeObject> {\n const mappingArray = ensureArray(mapping);\n const codeBlocks = mappingArray.filter(\n (mappingItem: NodeObject): boolean =>\n mappingItem[PROP_ENTITY_TYPE] === EngineConstants.spec.codeBlock &&\n this.isJavaScriptCode(getValueIfDefined(mappingItem[EngineConstants.prop.codeBody])!)\n );\n // FIXME: Handle if we can combine the codeb blocks with triples map.\n // As of now if there is any code block, triples map does not get executed.\n if (codeBlocks.length > 0) {\n return await this.executeCodeBlocks(codeBlocks, args, jsExecutionOptions ?? {});\n }\n\n const functions = {\n ...this.functions,\n ...capabilityConfig?.functions\n };\n const mapper = new Mapper({ functions });\n return await mapper.apply(args, mapping, frame ?? {});\n }\n\n public async executeTrigger(integration: string, payload: any): Promise<void> {\n const triggerToCapabilityMapping = await this.findTriggerCapabilityMapping(integration);\n const capabilityArgs = await this.performParameterMappingOnArgsIfDefined(\n payload,\n triggerToCapabilityMapping as Partial<MappingWithInputs> | Partial<MappingWithInputsReference>\n );\n const capabilityId = await this.performCapabilityMappingWithArgs(payload, triggerToCapabilityMapping);\n if (capabilityId) {\n const mappedCapability = (await this.findBy({ id: capabilityId })) as Capability;\n await this.executeCapability(mappedCapability, capabilityArgs);\n }\n }\n\n private async findTriggerCapabilityMapping(integration: string): Promise<TriggerMapping> {\n const triggerCapabilityMappingNew = (await this.findBy(\n {\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: integration,\n [EngineConstants.prop.capabilityType]: EngineConstants.spec.triggerCapabilityMapping\n },\n `Failed to find a Trigger Capability mapping for integration ${integration}`\n )) as TriggerMapping;\n if (triggerCapabilityMappingNew) {\n return triggerCapabilityMappingNew;\n }\n throw new Error(`Failed to find a Trigger Capability mapping for integration ${integration}`);\n }\n\n private async executeCapabilityByName(\n capabilityName: string,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capability = await this.findCapabilityWithName(capabilityName);\n return await this.executeCapability(capability, capabilityArgs, capabilityConfig);\n }\n\n private async findCapabilityWithName(capabilityName: string): Promise<Capability> {\n return (await this.findBy(\n { type: EngineConstants.spec.capability, [EngineConstants.prop.label]: capabilityName },\n `Failed to find the capability ${capabilityName} in the schema.`\n )) as Capability;\n }\n\n public async executeCapability(\n capability: Capability,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n this.globalCallbacks?.onCapabilityStart?.(capability[PROP_ENTITY_ID], capabilityArgs);\n if (capabilityConfig?.callbacks?.onCapabilityStart) {\n this.logger.debug('Capability arguments', capabilityArgs);\n capabilityConfig.callbacks.onCapabilityStart(capability[PROP_ENTITY_ID], capabilityArgs);\n }\n const { mapping, account } = await this.findMappingForCapabilityContextually(\n capability[PROP_ENTITY_ID],\n capabilityArgs\n );\n this.logger.debug('Mapping', JSON.stringify(mapping));\n const shouldValidate = this.shouldValidate(capabilityConfig);\n if (shouldValidate) {\n await this.assertCapabilityParamsMatchParameterSchemas(capabilityArgs, capability);\n }\n\n try {\n // Execute capability mapping before hook if appropriate -\n // works for any mapping that can be used as a verb mapping\n if (mapping) {\n await globalHooks.executeBeforeExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, { sklEngine: this });\n }\n\n const verbReturnValue = await this.executeMapping(mapping, capabilityArgs, capabilityConfig, account);\n\n if (shouldValidate) {\n await this.assertCapabilityReturnValueMatchesReturnTypeSchema(verbReturnValue, capability);\n }\n\n // Execute capability mapping after hook if appropriate\n if (mapping) {\n await globalHooks.executeAfterExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, verbReturnValue, { sklEngine: this });\n }\n\n this.globalCallbacks?.onCapabilityEnd?.(capability[PROP_ENTITY_ID], verbReturnValue);\n if (capabilityConfig?.callbacks?.onCapabilityEnd) {\n capabilityConfig.callbacks.onCapabilityEnd(capability[PROP_ENTITY_ID], verbReturnValue);\n }\n\n return verbReturnValue;\n } catch (error) {\n // Execute capability mapping error hook if appropriate\n if (mapping) {\n await globalHooks.executeErrorExecuteCapabilityMapping([capabilityArgs] as Entity[], mapping, error as Error, { sklEngine: this });\n }\n throw error;\n }\n }\n\n private async findMappingForCapabilityContextually(\n capabilityId: string,\n args: JSONObject\n ): Promise<{ mapping: CapabilityMapping; account?: Entity }> {\n if (args.mapping) {\n const mapping = await this.findByIfExists({ id: args.mapping as string });\n if (!mapping) {\n throw new Error(`Mapping ${args.mapping as string} not found.`);\n }\n return { mapping: mapping as CapabilityMapping };\n }\n if (args.object) {\n const mapping = await this.findCapabilityObjectMapping(capabilityId, args.object as string);\n if (mapping) {\n return { mapping };\n }\n }\n if (args.account) {\n const account = await this.findBy({ id: args.account as string });\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const mapping = await this.findCapabilityIntegrationMapping(capabilityId, integratedProductId);\n if (mapping) {\n return { mapping, account };\n }\n }\n\n const mappings = await this.findAllBy({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.integration]: Not(Exists()),\n [EngineConstants.prop.object]: Not(Exists())\n });\n if (mappings.length === 1) {\n return { mapping: mappings[0] as CapabilityMapping };\n }\n if (mappings.length > 1) {\n throw new Error('Multiple mappings found for capability, please specify one.');\n }\n if (args.object) {\n throw new Error(`Mapping between object ${args.object as string} and capability ${capabilityId} not found.`);\n }\n if (args.account) {\n throw new Error(`Mapping between account ${args.account as string} and capability ${capabilityId} not found.`);\n }\n throw new Error(`No mapping found.`);\n }\n\n public async executeMapping(\n mapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n account?: Entity\n ): Promise<OrArray<NodeObject>> {\n args = await this.addPreProcessingMappingToArgs(mapping, args, capabilityConfig);\n let returnValue: OrArray<NodeObject>;\n // If (EngineConstants.prop.capability in mapping || EngineConstants.prop.capabilityMapping in mapping) {\n // const capabilityId = await this.performCapabilityMappingWithArgs(args, mapping, capabilityConfig);\n // const mappedArgs = await this.performParameterMappingOnArgsIfDefined(\n // { ...args, capabilityId },\n // mapping as MappingWithInputs,\n // capabilityConfig\n // );\n // Logger.getInstance().log('Mapped args', mappedArgs);\n // returnValue = await this.executeCapabilityMapping(mapping, args, mappedArgs, capabilityConfig);\n // } else {\n const mappedArgs = await this.performParameterMappingOnArgsIfDefined(\n args,\n mapping as MappingWithInputs,\n capabilityConfig\n );\n this.logger.debug('Mapped args', mappedArgs);\n if (EngineConstants.prop.operationId in mapping || EngineConstants.prop.operationMapping in mapping) {\n returnValue = (await this.executeOperationMapping(\n mapping,\n mappedArgs,\n args,\n account!,\n capabilityConfig\n )) as NodeObject;\n } else if (EngineConstants.prop.series in mapping) {\n returnValue = await this.executeSeriesMapping(mapping as MappingWithSeries, mappedArgs, capabilityConfig);\n } else if (EngineConstants.prop.parallel in mapping) {\n returnValue = await this.executeParallelMapping(mapping as MappingWithParallel, mappedArgs, capabilityConfig);\n } else {\n returnValue = mappedArgs;\n }\n // }\n return await this.performReturnValueMappingWithFrameIfDefined(\n returnValue as JSONValue,\n mapping as MappingWithOutputsMapping,\n capabilityConfig\n );\n }\n\n private shouldValidate(capabilityConfig?: CapabilityConfig): boolean {\n return capabilityConfig?.disableValidation === undefined\n ? this.disableValidation !== true\n : !capabilityConfig.disableValidation;\n }\n\n private async executeOperationMapping(\n mapping: Mapping,\n mappedArgs: JSONObject,\n originalArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<OperationResponse | OrArray<NodeObject>> {\n const integration = (mapping as CapabilityMapping)[EngineConstants.prop.integration]?.[PROP_ENTITY_ID];\n\n // If the mapping has an integration, it means that the operation is an integration operation\n if (integration) {\n const operationInfo = await this.performOperationMappingWithArgs(originalArgs, mapping, capabilityConfig);\n const response = await this.performOperation(operationInfo, mappedArgs, originalArgs, account, capabilityConfig);\n if (!this.ifCapabilityStreaming(capabilityConfig)) {\n this.logger.debug('Original response', JSON.stringify(response));\n }\n return response;\n }\n // If the mapping does not have an integration, it means that the operation is a capability operation\n return await this.executeCapabilityMapping(mapping, originalArgs, mappedArgs, capabilityConfig);\n }\n\n private async executeSeriesMapping(\n mapping: MappingWithSeries,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const seriesCapabilityMappingsList = this.rdfListToArray(mapping[EngineConstants.prop.series]!);\n const seriesCapabilityArgs = {\n originalCapabilityParameters: args,\n previousCapabilityReturnValue: {},\n allStepsResults: []\n };\n\n return await this.executeSeriesFromList(seriesCapabilityMappingsList, seriesCapabilityArgs, capabilityConfig);\n }\n\n private rdfListToArray(list: { [RML_LIST]: CapabilityMapping[] } | RdfList<CapabilityMapping>): CapabilityMapping[] {\n if (!(RML_LIST in list)) {\n return [\n list[RDF.first],\n ...getIdFromNodeObjectIfDefined(list[RDF.rest] as ReferenceNodeObject) === RDF.nil\n ? []\n : this.rdfListToArray(list[RDF.rest] as RdfList<CapabilityMapping>)\n ];\n }\n return list[RML_LIST];\n }\n\n private async executeSeriesFromList(\n list: Mapping[],\n args: SeriesCapabilityArgs,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const nextCapabilityMapping = list[0];\n const returnValue = await this.executeMapping(nextCapabilityMapping, args, capabilityConfig);\n if (list.length > 1) {\n return await this.executeSeriesFromList(\n list.slice(1),\n {\n ...args,\n previousCapabilityReturnValue: returnValue as JSONObject,\n allStepsResults: [...args.allStepsResults ?? [], returnValue as JSONObject]\n },\n capabilityConfig\n );\n }\n return returnValue;\n }\n\n private async executeCapabilityMapping(\n capabilityMapping: Mapping,\n originalArgs: JSONObject,\n mappedArgs: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capabilityId = await this.performCapabilityMappingWithArgs(originalArgs, capabilityMapping, capabilityConfig);\n if (capabilityId) {\n if (capabilityId === EngineConstants.dataSource.update) {\n await this.updateEntityFromcapabilityArgs(mappedArgs);\n return {};\n }\n if (capabilityId === EngineConstants.dataSource.save) {\n return await this.saveEntityOrEntitiesFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.destroy) {\n return await this.destroyEntityOrEntitiesFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.findAll) {\n return await this.findAll(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.find) {\n return await this.find(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.count) {\n return await this.countAndWrapValueFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === EngineConstants.dataSource.exists) {\n return await this.existsAndWrapValueFromcapabilityArgs(mappedArgs);\n }\n if (capabilityId === 'https://skl.ai/capability/execute-code') {\n const codeBlocks = ensureArray((capabilityMapping[EngineConstants.prop.codeBlocks] as any[]) ?? []).filter(\n (mappingItem: any): boolean =>\n mappingItem[PROP_ENTITY_TYPE] === EngineConstants.spec.codeBlock &&\n this.isJavaScriptCode(getValueIfDefined(mappingItem[EngineConstants.prop.codeBody])!)\n );\n return await this.executeCodeBlocks(codeBlocks, mappedArgs, {});\n }\n\n // Check for custom capabilities\n if (globalCustomCapabilities.has(capabilityId)) {\n return await globalCustomCapabilities.execute(capabilityId, mappedArgs, this, capabilityConfig);\n }\n\n return await this.findAndExecuteCapability(capabilityId, mappedArgs, capabilityConfig);\n }\n return {};\n }\n\n private async addPreProcessingMappingToArgs(\n capabilityMapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<JSONObject> {\n if (EngineConstants.prop.preProcessingMapping in capabilityMapping) {\n const preMappingArgs = await this.performMapping(\n args,\n capabilityMapping[EngineConstants.prop.preProcessingMapping] as NodeObject,\n getValueIfDefined(capabilityMapping[EngineConstants.prop.preProcessingMappingFrame]),\n capabilityConfig\n );\n return { ...args, preProcessedParameters: preMappingArgs as JSONObject };\n }\n return args;\n }\n\n private replaceTypeAndId(entity: Record<string, any>): Record<string, any> {\n if (typeof entity !== 'object') {\n throw new Error('Entity is not an object');\n }\n const clonedEntity = structuredClone(entity);\n if (clonedEntity[EngineConstants.prop.type]) {\n clonedEntity[PROP_ENTITY_TYPE] = clonedEntity[EngineConstants.prop.type];\n }\n if (clonedEntity[EngineConstants.prop.identifier]) {\n clonedEntity[PROP_ENTITY_ID] = SKL_DATA_NAMESPACE + (clonedEntity[EngineConstants.prop.identifier] as string);\n }\n return clonedEntity;\n }\n\n private async updateEntityFromcapabilityArgs(args: Record<string, any>): Promise<void> {\n let ids = args.id ?? args.ids;\n if (!Array.isArray(ids)) {\n ids = [ids];\n }\n // FIX: Temporary fix for the issue where the id always getting prefixed with the namespace\n ids = ids.map((id: string) => (id.startsWith('http') ? id : `${SKL_DATA_NAMESPACE}${id}`));\n await this.update(ids, args.attributes);\n }\n\n private async saveEntityOrEntitiesFromcapabilityArgs(args: Record<string, any>): Promise<OrArray<Entity>> {\n if (args.entity && typeof args.entity === 'object') {\n args.entity = this.replaceTypeAndId(args.entity);\n }\n if (args.entities && Array.isArray(args.entities)) {\n args.entities = args.entities.map(this.replaceTypeAndId);\n }\n return await this.save(args.entity ?? args.entities);\n }\n\n private async destroyEntityOrEntitiesFromcapabilityArgs(args: Record<string, any>): Promise<OrArray<Entity>> {\n if (args.entity && typeof args.entity === 'object') {\n args.entity = this.replaceTypeAndId(args.entity);\n }\n if (args.entities && Array.isArray(args.entities)) {\n args.entities = args.entities.map(this.replaceTypeAndId);\n }\n return await this.destroy(args.entity ?? args.entities);\n }\n\n private async countAndWrapValueFromcapabilityArgs(args: Record<string, any>): Promise<NodeObject> {\n const count = await this.count(args);\n return {\n [EngineConstants.dataSource.countResult]: {\n [PROP_ENTITY_VALUE]: count,\n [PROP_ENTITY_TYPE]: XSD.integer\n }\n };\n }\n\n private async existsAndWrapValueFromcapabilityArgs(args: Record<string, any>): Promise<NodeObject> {\n const exists = await this.exists(args);\n return {\n [EngineConstants.dataSource.existsResult]: {\n [PROP_ENTITY_VALUE]: exists,\n [PROP_ENTITY_TYPE]: XSD.boolean\n }\n };\n }\n\n public async findAndExecuteCapability(\n capabilityId: string,\n args: Record<string, any>,\n capabilityConfig?: CapabilityConfig\n ): Promise<OrArray<NodeObject>> {\n const capability = (await this.findBy({ id: capabilityId })) as Capability;\n return await this.executeCapability(capability, args, capabilityConfig);\n }\n\n private async executeParallelMapping(\n mapping: MappingWithParallel,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject[]> {\n const parallelCapabilityMappings = ensureArray(\n mapping[EngineConstants.prop.parallel] as unknown as OrArray<CapabilityMapping>\n );\n const nestedReturnValues = await Promise.all<Promise<OrArray<NodeObject>>>(\n parallelCapabilityMappings.map(\n (capabilityMapping): Promise<OrArray<NodeObject>> =>\n this.executeMapping(capabilityMapping, args, capabilityConfig)\n )\n );\n return nestedReturnValues.flat();\n }\n\n private async findCapabilityIntegrationMapping(\n capabilityId: string,\n integratedProductId: string\n ): Promise<CapabilityMapping | undefined> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.integration]: integratedProductId\n })) as CapabilityMapping;\n }\n\n private async performOperationMappingWithArgs(\n args: JSONValue,\n mapping: Mapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject> {\n if (mapping[EngineConstants.prop.operationId]) {\n return { [EngineConstants.prop.operationId]: mapping[EngineConstants.prop.operationId] };\n }\n if (mapping[EngineConstants.prop.dataSource]) {\n return { [EngineConstants.prop.dataSource]: mapping[EngineConstants.prop.dataSource] };\n }\n return await this.performMapping(\n args,\n mapping[EngineConstants.prop.operationMapping] as OrArray<NodeObject>,\n undefined,\n capabilityConfig\n );\n }\n\n private async performOperation(\n operationInfo: NodeObject,\n operationArgs: JSONObject,\n originalArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig,\n securityCredentials?: Entity\n ): Promise<OperationResponse> {\n if (operationInfo[EngineConstants.prop.schemeName]) {\n return await this.performOauthSecuritySchemeStageWithCredentials(\n operationInfo,\n operationArgs,\n account,\n securityCredentials\n );\n }\n if (operationInfo[EngineConstants.prop.dataSource]) {\n return await this.getDataFromDataSource(\n getIdFromNodeObjectIfDefined(operationInfo[EngineConstants.prop.dataSource] as string | ReferenceNodeObject)!,\n capabilityConfig\n );\n }\n if (operationInfo[EngineConstants.prop.operationId]) {\n const response = await this.performOpenapiOperationWithCredentials(\n getValueIfDefined(operationInfo[EngineConstants.prop.operationId])!,\n operationArgs,\n account,\n capabilityConfig\n );\n return this.axiosResponseAndParamsToOperationResponse(response, operationArgs, originalArgs);\n }\n throw new Error('Operation not supported.');\n }\n\n private axiosResponseAndParamsToOperationResponse(\n response: AxiosResponse,\n operationParameters: JSONObject,\n originalArgs: JSONObject\n ): OperationResponse {\n return {\n operationParameters,\n originalCapabilityParameters: originalArgs,\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n config: {\n headers: response.config.headers,\n method: response.config.method,\n url: response.config.url,\n data: response.config.data\n } as JSONObject\n };\n }\n\n private async performReturnValueMappingWithFrameIfDefined(\n returnValue: JSONValue,\n mapping: MappingWithOutputsMapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<NodeObject> {\n if (EngineConstants.prop.outputsMapping in mapping) {\n return await this.performMapping(\n returnValue,\n mapping[EngineConstants.prop.outputsMapping],\n getValueIfDefined<JSONObject>(mapping[EngineConstants.prop.outputsMappingFrame]),\n capabilityConfig\n );\n }\n return returnValue as NodeObject;\n }\n\n private async performParameterMappingOnArgsIfDefined(\n args: JSONObject,\n mapping: Partial<MappingWithInputs> | Partial<MappingWithInputsReference>,\n capabilityConfig?: CapabilityConfig,\n convertToJsonDeep = false\n ): Promise<Record<string, any>> {\n if (EngineConstants.prop.inputsReference in mapping) {\n const reference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsReference])!;\n return this.getDataAtReference(reference, args);\n }\n\n if (EngineConstants.prop.inputsMappingRef in mapping) {\n const reference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsMappingRef])!;\n const referencedMapping = this.getDataAtReference(reference, args);\n\n if (!referencedMapping || referencedMapping?.length === 0) {\n return args;\n }\n\n // Handle inputsMappingFrameRef if present\n let frame;\n if (EngineConstants.prop.inputsMappingFrameRef in mapping) {\n const frameReference = getValueIfDefined<string>(mapping[EngineConstants.prop.inputsMappingFrameRef])!;\n frame = this.getDataAtReference(frameReference, args);\n } else {\n // Use direct frame if provided\n frame = getValueIfDefined(mapping[EngineConstants.prop.inputsMappingFrame]);\n }\n\n // Perform mapping with the referenced mapping and frame\n const mappedData = await this.performMapping(args, referencedMapping, frame, capabilityConfig);\n return toJSON(mappedData, convertToJsonDeep);\n }\n\n if (EngineConstants.prop.inputsMapping in mapping) {\n const mappedData = await this.performMapping(\n args,\n (mapping as MappingWithInputs)[EngineConstants.prop.inputsMapping]!,\n getValueIfDefined(mapping[EngineConstants.prop.inputsMappingFrame]),\n capabilityConfig\n );\n return toJSON(mappedData, convertToJsonDeep);\n }\n return args;\n }\n\n private getDataAtReference(reference: string, data: JSONObject): any {\n const results = JSONPath({\n path: reference,\n json: data,\n resultType: 'value'\n });\n const isArrayOfLengthOne = Array.isArray(results) && results.length === 1;\n let result = isArrayOfLengthOne ? results[0] : results;\n if (result && typeof result === 'object' && PROP_ENTITY_VALUE in result) {\n result = result[PROP_ENTITY_VALUE];\n }\n return result;\n }\n\n private async getIntegrationInterface(\n integratedProductId: string,\n integrationType = EngineConstants.spec.integrationInterface\n ): Promise<Entity | null> {\n if (integrationType === EngineConstants.spec.integrationInterface) {\n const integrationInterface = await this.findBy({\n type: integrationType,\n [EngineConstants.prop.type]: EngineConstants.spec.openApi,\n [EngineConstants.prop.integration]: integratedProductId\n });\n return integrationInterface;\n }\n // Add support for other integration types\n return null;\n }\n\n private async findSecurityCredentialsForAccountIfDefined(accountId: string): Promise<Entity | undefined> {\n return await this.findByIfExists({\n type: EngineConstants.spec.integrationAuthenticationCredential,\n [EngineConstants.prop.accountOrUser]: accountId\n });\n }\n\n private async findgetOpenApiRuntimeAuthorizationCapabilityIfDefined(): Promise<Capability | undefined> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capability,\n [EngineConstants.prop.label]: OPEN_API_RUNTIME_AUTHORIZATION\n })) as Capability;\n }\n\n private async findRefreshCapabilityForIntegration(integrationId: string): Promise<Capability> {\n const integration = await this.findByIfExists({ id: integrationId });\n const configuredRefreshCapability = integration?.[EngineConstants.prop.refreshCapability];\n if (configuredRefreshCapability) {\n const refreshCapabilityId = getIdFromNodeObjectIfDefined(\n configuredRefreshCapability as string | ReferenceNodeObject\n );\n if (!refreshCapabilityId) {\n throw new Error(`Integration ${integrationId} has an invalid refresh capability reference.`);\n }\n const refreshCapability = (await this.findByIfExists({ id: refreshCapabilityId })) as Capability | undefined;\n if (!refreshCapability) {\n throw new Error(\n `Refresh capability ${refreshCapabilityId} configured for integration ${integrationId} was not found.`\n );\n }\n return refreshCapability;\n }\n return await this.findCapabilityWithName('getOauthTokens');\n }\n\n private async getRuntimeCredentialsWithSecurityCredentials(\n securityCredentials: Entity,\n integrationId: string,\n openApiOperationInformation: OperationWithPathInfo,\n operationArgs: JSONObject\n ): Promise<JSONObject> {\n const getOpenApiRuntimeAuthorizationCapability = await this.findgetOpenApiRuntimeAuthorizationCapabilityIfDefined();\n if (!getOpenApiRuntimeAuthorizationCapability) {\n return {};\n }\n const mapping = await this.findCapabilityIntegrationMapping(\n getOpenApiRuntimeAuthorizationCapability[PROP_ENTITY_ID],\n integrationId\n );\n if (!mapping) {\n return {};\n }\n const args = {\n securityCredentials,\n openApiExecutorOperationWithPathInfo: openApiOperationInformation,\n operationArgs\n } as JSONObject;\n const operationInfoJsonLd = await this.performParameterMappingOnArgsIfDefined(args, mapping, undefined, true);\n const headers = getValueIfDefined<JSONObject>(operationInfoJsonLd[EngineConstants.prop.headers]);\n return headers ?? {};\n }\n\n private async createOpenApiOperationExecutorWithSpec(openApiDescription: OpenApi): Promise<OpenApiOperationExecutor> {\n const executor = new OpenApiOperationExecutor();\n await executor.setOpenapiSpec(openApiDescription);\n return executor;\n }\n\n private async findCapabilityObjectMapping(capabilityId: string, object: string): Promise<CapabilityMapping> {\n return (await this.findByIfExists({\n type: EngineConstants.spec.capabilityMapping,\n [EngineConstants.prop.capability]: capabilityId,\n [EngineConstants.prop.object]: InversePath({\n subPath: ZeroOrMorePath({ subPath: RDFS.subClassOf as string }),\n value: object\n })\n })) as CapabilityMapping;\n }\n\n private async performCapabilityMappingWithArgs(\n args: JSONValue,\n mapping: Mapping,\n capabilityConfig?: CapabilityConfig\n ): Promise<string | undefined> {\n if (mapping[EngineConstants.prop.operationId]) {\n return getValueIfDefined<string>(mapping[EngineConstants.prop.operationId])!;\n }\n if (mapping[EngineConstants.prop.operationId]) {\n return getValueIfDefined<string>(mapping[EngineConstants.prop.operationId])!;\n }\n const capabilityInfoJsonLd = await this.performMapping(\n args,\n mapping[EngineConstants.prop.operationMapping] as NodeObject,\n undefined,\n capabilityConfig\n );\n return getValueIfDefined<string>(capabilityInfoJsonLd[EngineConstants.prop.operationId])!;\n }\n\n private async assertCapabilityParamsMatchParameterSchemas(\n capabilityParams: any,\n capability: Capability\n ): Promise<void> {\n let parametersSchemaObject = capability[EngineConstants.prop.inputs];\n if (parametersSchemaObject?.[PROP_ENTITY_ID] && Object.keys(parametersSchemaObject).length === 1) {\n parametersSchemaObject = await this.findBy({ id: parametersSchemaObject[PROP_ENTITY_ID] });\n }\n if (capabilityParams && parametersSchemaObject) {\n const capabilityParamsAsJsonLd = {\n '@context': getValueIfDefined<ContextDefinition>(capability[EngineConstants.prop.inputsContext]),\n [PROP_ENTITY_TYPE]: EngineConstants.spec.inputs,\n ...capabilityParams\n };\n const report = await this.convertToQuadsAndValidateAgainstShape(capabilityParamsAsJsonLd, parametersSchemaObject);\n if (!report.conforms) {\n this.throwValidationReportError(\n report,\n `${getValueIfDefined(capability[EngineConstants.prop.label])} parameters do not conform to the schema`\n );\n }\n }\n }\n\n private async performOpenapiOperationWithCredentials(\n operationId: string,\n operationArgs: JSONObject,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<AxiosResponse> {\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const restAPIInterface = await this.getIntegrationInterface(integratedProductId);\n if (!restAPIInterface) {\n throw new Error(`No integration interface found for integrated product ${integratedProductId}`);\n }\n const openApiDescription = getValueIfDefined<OpenApi>(\n restAPIInterface[EngineConstants.prop.declarativeApiDescription]\n )!;\n const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const openApiOperationInformation = await openApiExecutor.getOperationWithPathInfoMatchingOperationId(operationId);\n const securityCredentials = await this.findSecurityCredentialsForAccountIfDefined(account[PROP_ENTITY_ID]);\n let runtimeAuthorization: JSONObject = {};\n if (securityCredentials) {\n const generatedRuntimeCredentials = await this.getRuntimeCredentialsWithSecurityCredentials(\n securityCredentials,\n integratedProductId,\n openApiOperationInformation,\n operationArgs\n );\n if (generatedRuntimeCredentials && Object.keys(generatedRuntimeCredentials).length > 0) {\n runtimeAuthorization = generatedRuntimeCredentials;\n }\n }\n const apiKey = [\n getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.apiKey]),\n this.getAuthorizationHeaderFromRuntimeCredentials(runtimeAuthorization)\n ].find(Boolean);\n const configuration = {\n accessToken: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.accessToken]),\n bearerToken: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.bearerToken]),\n apiKey,\n basePath: getValueIfDefined<string>(account[EngineConstants.prop.overrideBasePath]),\n username: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.username]),\n password: getValueIfDefined<string>(securityCredentials?.[EngineConstants.prop.password])\n };\n let response;\n let executeOperationOptions: AxiosRequestConfig | undefined;\n try {\n const additionalHeaders = this.getHeadersFromRuntimeCredentials(runtimeAuthorization) as any;\n if (\n additionalHeaders &&\n typeof additionalHeaders === 'object' &&\n !Array.isArray(additionalHeaders) &&\n Object.keys(additionalHeaders).length > 0\n ) {\n executeOperationOptions = { headers: additionalHeaders };\n }\n if (this.ifCapabilityStreaming(capabilityConfig)) {\n executeOperationOptions = {\n ...executeOperationOptions,\n responseType: 'stream'\n };\n } else if (this.ifCapabilityBuffering(capabilityConfig)) {\n executeOperationOptions = {\n ...executeOperationOptions,\n responseType: 'arraybuffer'\n };\n }\n if (capabilityConfig?.axiosOptions && typeof capabilityConfig.axiosOptions === 'object' && Object.keys(capabilityConfig.axiosOptions).length > 0) {\n executeOperationOptions = {\n ...executeOperationOptions,\n ...capabilityConfig.axiosOptions\n };\n }\n response = await openApiExecutor.executeOperation(\n operationId,\n configuration,\n operationArgs,\n executeOperationOptions\n );\n } catch (error: unknown) {\n if (\n axios.isAxiosError(error) &&\n await this.isInvalidTokenError(error, integratedProductId) &&\n securityCredentials\n ) {\n const refreshCapabilityConfig = capabilityConfig\n ? {\n ...capabilityConfig,\n stream: false,\n buffer: false\n }\n : undefined;\n const refreshedConfiguration = await this.refreshSecurityCredentials(\n securityCredentials,\n integratedProductId,\n account,\n refreshCapabilityConfig\n );\n response = await openApiExecutor.executeOperation(\n operationId,\n refreshedConfiguration,\n operationArgs,\n executeOperationOptions\n );\n } else {\n throw error;\n }\n }\n return response;\n }\n\n private getHeadersFromRuntimeCredentials(runtimeCredentials: JSONObject): JSONObject {\n let returnValue: JSONObject = {};\n if (\n runtimeCredentials.headers &&\n typeof runtimeCredentials.headers === 'object' &&\n Object.keys(runtimeCredentials.headers).length > 0 &&\n !Array.isArray(runtimeCredentials.headers)\n ) {\n returnValue = runtimeCredentials.headers;\n }\n return returnValue;\n }\n\n private getAuthorizationHeaderFromRuntimeCredentials(runtimeCredentials: JSONObject): string | undefined {\n const headers = this.getHeadersFromRuntimeCredentials(runtimeCredentials);\n if (headers && 'Authorization' in headers) {\n const authorizationHeader = headers.Authorization;\n if (typeof authorizationHeader === 'string') {\n return authorizationHeader;\n }\n }\n return undefined;\n }\n\n private async isInvalidTokenError(error: AxiosError, integratedProductId: string): Promise<boolean> {\n const integrationInterface = await this.getIntegrationInterface(integratedProductId);\n if (!integrationInterface) {\n return false;\n }\n\n const errorMatcher = integrationInterface[EngineConstants.prop.invalidTokenErrorMatcher] as NodeObject;\n const errorMatcherStatus =\n errorMatcher && getValueIfDefined<string>(errorMatcher[EngineConstants.prop.invalidTokenErrorMatcherStatus]);\n const errorMatcherRegex =\n errorMatcher &&\n getValueIfDefined<string>(errorMatcher[EngineConstants.prop.invalidTokenErrorMatcherMessageRegex])!;\n if (errorMatcher && error.response?.status === errorMatcherStatus) {\n if (!errorMatcherRegex) {\n return true;\n }\n if (error.response?.statusText && new RegExp(errorMatcherRegex, 'u').test(error.response?.statusText)) {\n return true;\n }\n }\n\n return false;\n }\n\n private async refreshSecurityCredentials(\n securityCredentials: Entity,\n integrationId: string,\n account: Entity,\n capabilityConfig?: CapabilityConfig\n ): Promise<OpenApiClientConfiguration> {\n const refreshCapability = await this.findRefreshCapabilityForIntegration(integrationId);\n const mapping = await this.findCapabilityIntegrationMapping(refreshCapability[PROP_ENTITY_ID], integrationId);\n if (!mapping) {\n throw new Error(\n `No mapping found for capability ${refreshCapability[PROP_ENTITY_ID]} and integration ${integrationId}`\n );\n }\n const args = {\n refreshToken: getValueIfDefined<string>(securityCredentials[EngineConstants.prop.refreshToken])!,\n jwtBearerOptions: getValueIfDefined<string>(securityCredentials[EngineConstants.prop.jwtBearerOptions])!,\n securityCredentials: securityCredentials as unknown as JSONValue,\n account: account as unknown as JSONValue,\n integrationId\n } as JSONObject;\n const operationArgs = await this.performParameterMappingOnArgsIfDefined(args, mapping, capabilityConfig, true);\n const operationInfoJsonLd = await this.performOperationMappingWithArgs({}, mapping, capabilityConfig);\n const rawReturnValue = await this.performOperation(\n operationInfoJsonLd,\n operationArgs,\n args,\n account,\n capabilityConfig,\n securityCredentials\n );\n const mappedReturnValue = await this.performReturnValueMappingWithFrameIfDefined(\n rawReturnValue,\n mapping as MappingWithOutputsMapping,\n capabilityConfig\n );\n await this.assertCapabilityReturnValueMatchesReturnTypeSchema(mappedReturnValue, refreshCapability);\n const bearerToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.bearerToken]);\n const accessToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.accessToken]);\n const refreshToken = getValueIfDefined<string>(mappedReturnValue[EngineConstants.prop.refreshToken]);\n if (bearerToken) {\n securityCredentials[EngineConstants.prop.bearerToken] = bearerToken;\n }\n if (accessToken) {\n securityCredentials[EngineConstants.prop.accessToken] = accessToken;\n }\n if (refreshToken) {\n securityCredentials[EngineConstants.prop.refreshToken] = refreshToken;\n }\n await this.save(securityCredentials);\n return { accessToken, bearerToken };\n }\n\n private getOauthConfigurationFromSecurityCredentials(securityCredentialsSchema: Entity): OpenApiClientConfiguration {\n const username = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.username]);\n const password = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.password]);\n const accessToken = getValueIfDefined<string>(securityCredentialsSchema[EngineConstants.prop.accessToken]);\n return { username, password, accessToken };\n }\n\n private async assertCapabilityReturnValueMatchesReturnTypeSchema(\n returnValue: OrArray<NodeObject>,\n capability: Capability\n ): Promise<void> {\n let returnTypeSchemaObject = capability[EngineConstants.prop.outputs];\n if (returnTypeSchemaObject?.[PROP_ENTITY_ID] && Object.keys(returnTypeSchemaObject).length === 1) {\n returnTypeSchemaObject = await this.findBy({ id: returnTypeSchemaObject[PROP_ENTITY_ID] });\n }\n let report: ValidationReport | undefined;\n if (returnValue && returnTypeSchemaObject) {\n if (Array.isArray(returnValue)) {\n if (returnValue.some((valueItem): boolean => PROP_ENTITY_ID in valueItem)) {\n returnTypeSchemaObject[SHACL.targetNode] = returnValue.reduce(\n (nodes: ReferenceNodeObject[], outputItem): ReferenceNodeObject[] => {\n if (outputItem[PROP_ENTITY_ID]) {\n nodes.push({ [PROP_ENTITY_ID]: outputItem[PROP_ENTITY_ID] });\n }\n return nodes;\n },\n []\n );\n } else {\n const targetClasses = returnValue.reduce(\n (nodes: ReferenceNodeObject[], outputItem): ReferenceNodeObject[] => {\n if (outputItem[PROP_ENTITY_TYPE]) {\n const type = Array.isArray(outputItem[PROP_ENTITY_TYPE])\n ? outputItem[PROP_ENTITY_TYPE][0]\n : outputItem[PROP_ENTITY_TYPE];\n if (!nodes.includes({ [PROP_ENTITY_ID]: type })) {\n nodes.push({ [PROP_ENTITY_ID]: type });\n }\n }\n return nodes;\n },\n []\n );\n if (targetClasses.length > 0) {\n returnTypeSchemaObject[SHACL.targetClass] = targetClasses;\n }\n }\n report = await this.convertToQuadsAndValidateAgainstShape(returnValue, returnTypeSchemaObject);\n } else if (Object.keys(returnValue).length > 0) {\n if (returnValue[PROP_ENTITY_ID]) {\n returnTypeSchemaObject[SHACL.targetNode] = { [PROP_ENTITY_ID]: returnValue[PROP_ENTITY_ID] };\n } else if (returnValue[PROP_ENTITY_TYPE]) {\n returnTypeSchemaObject[SHACL.targetClass] = {\n [PROP_ENTITY_ID]: Array.isArray(returnValue[PROP_ENTITY_TYPE])\n ? returnValue[PROP_ENTITY_TYPE][0]\n : returnValue[PROP_ENTITY_TYPE]!\n };\n }\n report = await this.convertToQuadsAndValidateAgainstShape(returnValue, returnTypeSchemaObject);\n }\n }\n\n if (report && !report?.conforms) {\n throw new Error(\n `Return value ${\n Array.isArray(returnValue) ? 'array' : returnValue[PROP_ENTITY_ID]\n } does not conform to the schema`\n );\n }\n }\n\n private async convertToQuadsAndValidateAgainstShape(\n value: OrArray<NodeObject>,\n shape: NodeObject\n ): Promise<ValidationReport> {\n const valueAsQuads = await convertJsonLdToQuads(Array.isArray(value) ? value : [value]);\n const shapeQuads = await convertJsonLdToQuads(shape);\n const validator = new SHACLValidator(shapeQuads);\n return validator.validate(valueAsQuads);\n }\n\n private async performOauthSecuritySchemeStageWithCredentials(\n operationInfo: NodeObject,\n operationParameters: JSONObject,\n account: Entity,\n securityCredentials?: Entity\n ): Promise<OperationResponse> {\n const integratedProductId = (account[EngineConstants.prop.integration] as ReferenceNodeObject)[PROP_ENTITY_ID];\n const restAPIInterface = await this.getIntegrationInterface(integratedProductId);\n if (!restAPIInterface) {\n throw new Error(`No integration interface found for integrated product ${integratedProductId}`);\n }\n const openApiDescription = getValueIfDefined<OpenApi>(\n restAPIInterface[EngineConstants.prop.declarativeApiDescription]\n )!;\n securityCredentials ||= await this.findSecurityCredentialsForAccountIfDefined(account[PROP_ENTITY_ID]);\n let configuration: OpenApiClientConfiguration;\n if (securityCredentials) {\n configuration = this.getOauthConfigurationFromSecurityCredentials(securityCredentials);\n operationParameters.client_id = getValueIfDefined<string>(securityCredentials[EngineConstants.prop.username])!;\n } else {\n configuration = {};\n }\n const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);\n const response = await openApiExecutor.executeSecuritySchemeStage(\n getValueIfDefined(operationInfo[EngineConstants.prop.schemeName])!,\n getValueIfDefined(operationInfo[EngineConstants.prop.oauthFlow])!,\n getValueIfDefined(operationInfo[EngineConstants.prop.stage])!,\n configuration,\n operationParameters\n );\n if ('codeVerifier' in response && 'authorizationUrl' in response) {\n return {\n data: response as unknown as JSONObject,\n operationParameters\n };\n }\n return this.axiosResponseAndParamsToOperationResponse(response, operationParameters, operationParameters);\n }\n\n private async getDataFromDataSource(\n dataSourceId: string,\n capabilityConfig?: CapabilityConfig\n ): Promise<OperationResponse> {\n const dataSource = await this.findBy({ id: dataSourceId });\n if (dataSource[PROP_ENTITY_TYPE] === EngineConstants.spec.jsonDataSource) {\n const data = this.getDataFromJsonDataSource(dataSource, capabilityConfig);\n return { data, operationParameters: {}};\n }\n throw new Error(`DataSource type ${dataSource[PROP_ENTITY_TYPE]} is not supported.`);\n }\n\n private getDataFromJsonDataSource(dataSource: NodeObject, capabilityConfig?: CapabilityConfig): JSONObject {\n if (dataSource[EngineConstants.prop.source]) {\n const sourceValue = getValueIfDefined<string>(dataSource[EngineConstants.prop.source])!;\n return this.getJsonDataFromSource(sourceValue, capabilityConfig);\n }\n return getValueIfDefined<JSONObject>(dataSource[EngineConstants.prop.data])!;\n }\n\n private getJsonDataFromSource(source: string, capabilityConfig?: CapabilityConfig): JSONObject {\n const inputFiles = {\n ...this.inputFiles,\n ...capabilityConfig?.inputFiles\n };\n if (source in inputFiles) {\n const file = inputFiles[source];\n if (typeof file === 'string') {\n return JSON.parse(file);\n }\n return file;\n }\n // eslint-disable-next-line unicorn/expiring-todo-comments\n // TODO add support for remote sources\n throw new Error(`Failed to get data from source ${source}`);\n }\n\n private throwValidationReportError(report: ValidationReport, errorMessage: string): void {\n const reportMessages = this.validationReportToMessages(report);\n throw new Error(`${errorMessage}\\n\\n${reportMessages.join('\\n')}`);\n }\n\n private validationReportToMessages(report: ValidationReport): string[] {\n const reportMessages = [];\n for (const result of report.results) {\n const pathValue = result.path?.value;\n if (result.message.length === 0) {\n const message = `${pathValue}: Invalid due to ${result.sourceConstraintComponent?.value}`;\n reportMessages.push(message);\n } else {\n const resultMessages = result.message.map((message): string => `${message.value}`).join(', ');\n const message = `${pathValue}: ${resultMessages}`;\n reportMessages.push(message);\n }\n }\n return reportMessages;\n }\n\n private ifCapabilityStreaming(capabilityConfig?: CapabilityConfig): boolean {\n return Boolean(capabilityConfig && 'stream' in capabilityConfig && capabilityConfig.stream);\n }\n\n private ifCapabilityBuffering(capabilityConfig?: CapabilityConfig): boolean {\n return Boolean(capabilityConfig && 'buffer' in capabilityConfig && capabilityConfig.buffer);\n }\n\n private isJavaScriptCode(text: string): boolean {\n if (!text) {\n return false;\n }\n // Trim the text to handle leading/trailing whitespace\n const trimmed = text.trim();\n\n // First, quickly check if it looks like JSON (starts with { or [)\n const looksLikeJson = /^\\s*[[{]/.test(trimmed) && /[\\]}]\\s*$/.test(trimmed);\n\n if (looksLikeJson) {\n try {\n // If it can be parsed as JSON, it's likely an RML mapping\n JSON.parse(trimmed);\n return false;\n } catch {\n // If it looks like JSON but can't be parsed, it might be code\n // Continue with other checks\n }\n }\n\n // Check for common JavaScript patterns that wouldn't appear in JSON\n const jsPatterns = [\n /function\\s+[$A-Z_a-z][\\w$]*\\s*\\(/, // Function declaration\n /const\\s+[$A-Z_a-z][\\w$]*/, // Const declaration\n /let\\s+[$A-Z_a-z][\\w$]*/, // Let declaration\n /var\\s+[$A-Z_a-z][\\w$]*/, // Var declaration\n /if\\s*\\(/, // If statement\n /for\\s*\\(/, // For loop\n /while\\s*\\(/, // While loop\n /=>|return |console\\./, // Arrow functions, return statements, console usage\n /import\\s+|export\\s+/, // ES6 imports/exports\n /class\\s+[$A-Z_a-z][\\w$]*/, // Class declaration\n /\\/\\/|\\/\\*|\\*\\// // Comments\n ];\n\n // If it matches any JS pattern, it's likely code\n return jsPatterns.some(pattern => pattern.test(trimmed));\n }\n\n private ensureNodeObject(result: any): NodeObject {\n // Handle null/undefined results\n if (result === null || result === undefined) {\n return {};\n }\n\n // If it's already a NodeObject with proper formatting, return as is\n if (\n typeof result === 'object' &&\n !Array.isArray(result) &&\n (result[PROP_ENTITY_ID] !== undefined ||\n result[PROP_ENTITY_TYPE] !== undefined ||\n result['@context'] !== undefined ||\n result['@graph'] !== undefined)\n ) {\n return result as NodeObject;\n }\n\n // Handle arrays - convert to @graph\n if (Array.isArray(result)) {\n // Check if items in array are already objects\n const convertedItems = result.map(item => {\n if (typeof item === 'object' && item !== null) {\n // Already object, but ensure it has @type if not present\n if (!item[PROP_ENTITY_TYPE] && !item[PROP_ENTITY_ID] && !item[PROP_ENTITY_VALUE]) {\n return { [PROP_ENTITY_TYPE]: 'skl:Result', ...item };\n }\n return item;\n }\n // Convert primitives to objects with @value\n return { [PROP_ENTITY_VALUE]: item };\n });\n\n return {\n '@context': {\n skl: SKL_NAMESPACE\n },\n '@graph': convertedItems\n };\n }\n\n // Handle primitive values (string, number, boolean)\n if (typeof result !== 'object') {\n return {\n [PROP_ENTITY_VALUE]: result\n };\n }\n\n // Handle plain objects (not arrays, not null)\n // If it's a plain object but not in NodeObject format, add @type\n return {\n [PROP_ENTITY_TYPE]: 'skl:Result',\n '@context': {\n skl: SKL_NAMESPACE\n },\n ...result\n };\n }\n\n private async executeCodeBlocks(\n codeBlocks: NodeObject[],\n args: JSONValue,\n executionOptions: ExecutionOptions\n ): Promise<NodeObject> {\n const results = [];\n let updatedArgs = (args as Record<string, any>) || {};\n for (const codeBlock of codeBlocks) {\n const code = getValueIfDefined(codeBlock[EngineConstants.prop.codeBody])!;\n if (code) {\n const result = await this.executeJavaScriptMapping(updatedArgs, code as string, executionOptions);\n updatedArgs = {\n ...updatedArgs,\n ...result\n };\n results.push(result);\n }\n }\n return results.length > 0 ? results[results.length - 1] : {};\n }\n\n private async executeJavaScriptMapping(\n args: JSONValue,\n code: string,\n _executionOptions: ExecutionOptions\n ): Promise<NodeObject> {\n try {\n // Configure execution options\n const executionOptions: ExecutionOptions = {\n timeout: 60 * 60 * 1000, // 1 hour\n functionName: 'main',\n allowNetwork: true,\n allowedDomains: [],\n allowEnv: true,\n debugMode: true,\n allowRead: true,\n ..._executionOptions\n };\n\n if (!this.codeExecutor) {\n throw new Error('Code executor not set. Please set a code executor using setCodeExecutor()');\n }\n\n // Execute the code\n const executionResult = await this.codeExecutor.execute(code, args as Record<string, any>, executionOptions);\n\n // Handle execution errors\n if (executionResult?.error) {\n throw new Error(`Code execution error: ${executionResult.error?.message ?? 'Unknown error'}`);\n }\n\n // This is a patch to return the output as it is without converting to NodeObject\n // This is needed for some api inputs. We can try doing this using the frame.\n if (executionResult?.result?.rawOutput) {\n return executionResult?.result?.rawOutput;\n }\n // Convert the result to a NodeObject\n return this.ensureNodeObject(executionResult?.result ?? executionResult);\n } catch (error: unknown) {\n throw new Error(\n `Failed to execute JavaScript mapping: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n // Expose global hooks to users\n // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n get hooks(): typeof globalHooks {\n return globalHooks;\n }\n\n public async prepareContextForType(typeSpecOrId: any): Promise<Record<string, any>> {\n const typeSpecs = [];\n if (typeof typeSpecOrId === 'string') {\n typeSpecs.push(\n await this.getSuperClassesOfObject(typeSpecOrId),\n await this.findBy({ id: typeSpecOrId })\n );\n } else {\n typeSpecs.push(typeSpecOrId);\n }\n const context: Record<string, any> = {};\n\n for (const typeSpec of typeSpecs) {\n const properties = typeSpec[SHACL.property] ?? [];\n for (const property of ensureArray(properties)) {\n const dataType = property[SHACL.datatype]?.['@id'];\n const nodeKind = property[SHACL.nodeKind]?.['@id'];\n const path = property[SHACL.path]?.['@id'];\n if (nodeKind === SHACL.IRI) {\n context[path] = {\n '@type': '@id'\n };\n } else {\n context[path] = {\n '@type': dataType\n };\n }\n }\n }\n return context;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripleUtil.d.ts","sourceRoot":"","sources":["../../src/util/TripleUtil.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAA6B,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAqB,WAAW,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAC;AAEtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAM9D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CA4BhG;
|
|
1
|
+
{"version":3,"file":"TripleUtil.d.ts","sourceRoot":"","sources":["../../src/util/TripleUtil.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAA6B,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAqB,WAAW,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAC;AAEtF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAM9D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CA4BhG;AA6UD,wBAAsB,eAAe,CACnC,OAAO,EAAE,IAAI,EAAE,EACf,WAAW,CAAC,EAAE,OAAO,EACrB,SAAS,CAAC,EAAE,oBAAoB,EAChC,KAAK,CAAC,EAAE,gBAAgB,EACxB,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAuB9B;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAcnG;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,EAChE,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,GAAG,QAAQ,CAwBpB"}
|
package/dist/util/TripleUtil.js
CHANGED
|
@@ -305,6 +305,23 @@ async function frameWithRelationsOrNonBlankNodes(nodesById, frame, relations, wh
|
|
|
305
305
|
return undefined;
|
|
306
306
|
}).filter(Boolean);
|
|
307
307
|
}
|
|
308
|
+
// When relations are in the frame but no type/id constraint exists,
|
|
309
|
+
// jsonld.frame() may drop entities that lack the relation property.
|
|
310
|
+
// Inject ordered parent entity IDs so they're always matched during framing.
|
|
311
|
+
// Only do this when orderedNodeIds is explicitly provided (from the query adapter),
|
|
312
|
+
// otherwise let jsonld.frame() use its default property-based matching.
|
|
313
|
+
else if (relations && Object.keys(relations).length > 0 &&
|
|
314
|
+
!frame['@type'] && !frame['@id'] &&
|
|
315
|
+
orderedNodeIds && orderedNodeIds.length > 0) {
|
|
316
|
+
const nonBlankNodeIds = orderedNodeIds.filter((id) => !id.startsWith('_:'));
|
|
317
|
+
if (nonBlankNodeIds.length > 0) {
|
|
318
|
+
const nonBlankNodeSet = new Set(Object.keys(nodesById).filter((nodeId) => !nodeId.startsWith(BLANK_NODE_PREFIX)));
|
|
319
|
+
const matchingNodeIds = nonBlankNodeIds.filter((nodeId) => nonBlankNodeSet.has(nodeId));
|
|
320
|
+
if (matchingNodeIds.length > 0) {
|
|
321
|
+
frame['@id'] = matchingNodeIds;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
308
325
|
if (Object.keys(frame).length > 0) {
|
|
309
326
|
const results = await jsonld.frame({ '@graph': nodesValue }, frame);
|
|
310
327
|
if (Array.isArray(results['@graph'])) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripleUtil.js","sourceRoot":"","sources":["../../src/util/TripleUtil.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable multiline-comment-style */\n/* eslint-disable capitalized-comments */\n/* eslint-disable indent */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport DataFactory from '@rdfjs/data-model';\nimport type { Literal, Quad, Quad_Object, Quad_Subject, Variable } from '@rdfjs/types';\nimport type { ContextDefinition, GraphObject, NodeObject, ValueObject } from 'jsonld';\nimport * as jsonld from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport { FindOperator } from '../storage/FindOperator';\nimport type { FindOptionsRelations, FindOptionsWhere } from '../storage/FindOptionsTypes';\nimport type { InverseRelationOperatorValue } from '../storage/operator/InverseRelation';\nimport type { JSONArray, JSONObject, OrArray } from './Types';\nimport { ensureArray } from './Util';\nimport { RDF, XSD } from './Vocabularies';\n\nconst BLANK_NODE_PREFIX = '_:';\n\nexport function toJSValueFromDataType(value: string, dataType: string): number | boolean | string {\n switch (dataType) {\n case XSD.int:\n case XSD.positiveInteger:\n case XSD.negativeInteger:\n case XSD.integer: {\n return Number.parseInt(value, 10);\n }\n case XSD.boolean: {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n return value;\n }\n case XSD.double:\n case XSD.decimal:\n case XSD.float: {\n return Number.parseFloat(value);\n }\n case RDF.JSON:\n return JSON.parse(value);\n default: {\n return value;\n }\n }\n}\n\nfunction toJsonLdObject(object: Quad_Object): NodeObject | ValueObject {\n if (object.termType === 'Literal') {\n if (object.language && object.language.length > 0) {\n return {\n '@value': object.value,\n '@language': object.language\n };\n }\n return {\n '@value': toJSValueFromDataType(object.value, object.datatype.value),\n '@type': object.datatype.value === RDF.JSON ? '@json' : object.datatype.value\n };\n }\n if (object.termType === 'BlankNode') {\n return { '@id': `_:${object.value}` };\n }\n return { '@id': object.value };\n}\n\nfunction toJsonLdSubject(object: Quad_Subject): string {\n if (object.termType === 'BlankNode') {\n return `_:${object.value}`;\n }\n return object.value;\n}\n\nfunction relationsToFrame(relations: FindOptionsRelations): NodeObject {\n return Object.entries(relations).reduce((obj: NodeObject, [ field, value ]): NodeObject => {\n const fieldFrame: Frame = {\n '@explicit': false\n };\n let contextAddition: ContextDefinition | undefined;\n if (typeof value === 'object' && value.type === 'operator') {\n const { resolvedName, relations: subRelations } = value.value as InverseRelationOperatorValue;\n contextAddition = { [resolvedName]: { '@reverse': field }};\n if (subRelations) {\n fieldFrame[resolvedName] = relationsToFrame(subRelations);\n } else {\n fieldFrame[resolvedName] = {\n \"@embed\": \"@always\"\n };\n }\n } else if (typeof value === 'boolean') {\n fieldFrame[field] = {\n \"@embed\": \"@always\"\n };\n } else {\n fieldFrame[field] = relationsToFrame(value as FindOptionsRelations);\n }\n if (contextAddition) {\n return {\n ...obj,\n '@context': {\n ...(obj['@context'] as ContextDefinition),\n ...contextAddition\n },\n ...fieldFrame\n };\n }\n return {\n ...obj,\n ...fieldFrame\n };\n }, {});\n}\n\nfunction whereToFrame(where: FindOptionsWhere): NodeObject {\n if (where.id && typeof where.id === 'string') {\n return { '@id': where.id };\n }\n if (where.id && FindOperator.isFindOperator(where.id)) {\n const operator = where.id as FindOperator<any, any>;\n if (operator.operator === 'in') {\n return { '@id': operator.value };\n }\n if (operator.operator === 'equal') {\n return { '@id': operator.value };\n }\n }\n if (where.type && typeof where.type === 'string') {\n return { '@type': where.type };\n }\n if (where.type && typeof where.type === 'object' && 'value' in where.type && typeof where.type.value === 'string') {\n return { '@type': where.type.value };\n }\n\n // Handle arbitrary property constraints\n /* const frame: NodeObject = {};\n Object.entries(where).forEach(([ key, value ]) => {\n if (key !== 'id' && key !== 'type') {\n if (typeof value === 'string') {\n frame[key] = { '@id': value };\n } else if (FindOperator.isFindOperator(value)) {\n const operator = value as FindOperator<any, any>;\n if (operator.operator === 'in') {\n frame[key] = { '@id': operator.value };\n }\n }\n }\n }); */\n\n return {};\n}\n\nfunction triplesToNodes(triples: Quad[]): {\n nodesById: Record<string, NodeObject>;\n nodeIdOrder: string[];\n} {\n const nodeIdOrder: string[] = [];\n const nodesById = triples.reduce((obj: Record<string, NodeObject>, triple): Record<string, NodeObject> => {\n const subject = toJsonLdSubject(triple.subject);\n const isTypePredicate = triple.predicate.value === RDF.type;\n const predicate = isTypePredicate ? '@type' : triple.predicate.value;\n const object = isTypePredicate ? triple.object.value : toJsonLdObject(triple.object);\n if (obj[subject]) {\n if (obj[subject][predicate]) {\n if (Array.isArray(obj[subject][predicate])) {\n (obj[subject][predicate]! as any[]).push(object);\n } else {\n obj[subject][predicate] = [ obj[subject][predicate]!, object ] as any;\n }\n } else {\n obj[subject][predicate] = object;\n }\n } else {\n obj[subject] = {\n '@id': subject,\n [predicate]: object\n };\n if (!subject.startsWith(BLANK_NODE_PREFIX)) {\n nodeIdOrder.push(subject);\n }\n }\n return obj;\n }, {});\n return { nodesById, nodeIdOrder };\n}\n\nasync function frameWithRelationsOrNonBlankNodes(\n nodesById: Record<string, NodeObject>,\n frame?: Frame,\n relations?: FindOptionsRelations,\n where?: FindOptionsWhere,\n queriedType?: string,\n orderedNodeIds?: string[],\n rdfTypes?: string[]\n): Promise<NodeObject> {\n if (!frame) {\n const relationsFrame = relations ? relationsToFrame(relations) : {};\n const whereFrame = where ? whereToFrame(where) : {};\n frame = { ...relationsFrame, ...whereFrame };\n const nodesValue = Object.values(nodesById);\n /* // eslint-disable-next-line no-console\n console.log('nodesValue', JSON.stringify(nodesValue, null, 2));\n // eslint-disable-next-line no-console\n console.log('whereFrame', JSON.stringify(whereFrame, null, 2));\n // eslint-disable-next-line no-console\n console.log('relationsFrame', JSON.stringify(relationsFrame, null, 2)); */\n /* Add all the @types in the nodes to the frame */\n const typeSet = new Set<string>();\n const hasTypeConstraint = whereFrame['@type'];\n const hasIriTypeConstraint = where?.id;\n\n if (Object.keys(frame).length === 0) {\n // Only add all types when there's no where constraint (no filtering)\n nodesValue.forEach((node: NodeObject): void => {\n const isBlankNode = node['@id']?.startsWith(BLANK_NODE_PREFIX);\n if (isBlankNode) {\n return;\n }\n if (node['@type'] && frame && typeof frame === 'object') {\n ensureArray(node['@type']).forEach((type: string): void => {\n typeSet.add(type);\n });\n }\n });\n frame['@type'] ??= [];\n frame['@type'] = [ ...typeSet ];\n } else if (hasTypeConstraint) {\n // For type-based queries, include the constraint type and types from entities that matched the WHERE clause\n const constraintType = hasTypeConstraint as string;\n\n // Always include the queried/constraint type\n typeSet.add(constraintType);\n if (rdfTypes && Array.isArray(rdfTypes)) {\n rdfTypes.forEach((rdfType: string): void => {\n typeSet.add(rdfType);\n });\n }\n\n // If we have orderedNodeIds (entities that matched the WHERE clause), only include types from those\n // This prevents over-matching related entities while still supporting subclass matching\n if (orderedNodeIds && orderedNodeIds.length > 0) {\n const orderedNodeIdSet = new Set(orderedNodeIds);\n nodesValue.forEach((node: NodeObject): void => {\n const nodeId = node['@id'];\n if (!nodeId || node['@id']?.startsWith(BLANK_NODE_PREFIX)) {\n return;\n }\n // Only include types from entities that matched the WHERE clause (in orderedNodeIds)\n if (orderedNodeIdSet.has(nodeId) && node['@type'] && frame && typeof frame === 'object') {\n const nodeTypes = ensureArray(node['@type']);\n nodeTypes.forEach((type: string | undefined): void => {\n if (type) {\n typeSet.add(type);\n }\n });\n }\n });\n } else {\n // Fallback: if no orderedNodeIds, only add types from entities with the constraint type\n nodesValue.forEach((node: NodeObject): void => {\n const isBlankNode = node['@id']?.startsWith(BLANK_NODE_PREFIX);\n if (isBlankNode) {\n return;\n }\n if (node['@type'] && frame && typeof frame === 'object') {\n const nodeTypes = ensureArray(node['@type']);\n if (nodeTypes.includes(constraintType)) {\n nodeTypes.forEach((type: string): void => {\n typeSet.add(type);\n });\n }\n }\n });\n }\n\n frame['@type'] ??= [];\n frame['@type'] = [ ...typeSet ];\n \n // When we have orderedNodeIds, restrict root-level results to only those IDs\n // This prevents related entities with the same type from appearing at the root level\n // Only apply this constraint if we have non-blank node IDs, since blank nodes\n // will be filtered out anyway and we need them during framing\n if (orderedNodeIds && orderedNodeIds.length > 0) {\n const nonBlankNodeIds = orderedNodeIds.filter((id: string): boolean => !id.startsWith('_:'));\n if (nonBlankNodeIds.length > 0) {\n const nonBlankNodeSet = new Set(\n Object.keys(nodesById).filter((nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX))\n );\n const matchingNodeIds = nonBlankNodeIds.filter((nodeId: string): boolean => nonBlankNodeSet.has(nodeId));\n if (matchingNodeIds.length > 0) {\n frame['@id'] = matchingNodeIds as any;\n }\n }\n }\n }\n else if (hasIriTypeConstraint && !frame['@id']) {\n frame['@id'] = Object.keys(nodesById).map((nodeId: string): string | undefined => {\n if (!nodeId.startsWith(BLANK_NODE_PREFIX)) {\n return nodeId;\n }\n return undefined;\n }).filter(Boolean) as any;\n }\n if (Object.keys(frame).length > 0) {\n const results = await jsonld.frame({ '@graph': nodesValue }, frame);\n if (Array.isArray(results['@graph'])) {\n results['@graph'] = results['@graph'].filter(\n (node: NodeObject): boolean => (\n !node['@id']?.startsWith(BLANK_NODE_PREFIX) &&\n (\n Object.keys(node).length > 0 &&\n (\n !!node['@id'] ||\n !!node['@type'] ||\n Object.entries(node).some(([ key, value ]): boolean => key !== '@context' && value !== null)\n )\n )\n )\n );\n }\n if (typeof frame === 'object' && '@context' in frame && Object.keys(frame['@context']!).length > 0) {\n let resultsList;\n if (Array.isArray(results)) {\n resultsList = results;\n } else if ('@graph' in results) {\n resultsList = ensureArray(results['@graph']);\n } else {\n const { '@context': unusedContext, ...entityResult } = results;\n resultsList = [ entityResult ];\n }\n /* return {\n '@graph': resultsList.filter((result): boolean =>\n Object.keys((frame as NodeObject)['@context']!).some((relationField): boolean => relationField in result))\n }; */\n return resultsList as NodeObject;\n }\n return results;\n }\n const nonBlankNodes = Object.keys(nodesById).filter(\n (nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX)\n );\n return await jsonld.frame({ '@graph': Object.values(nodesById) }, { '@id': nonBlankNodes as any });\n }\n return await jsonld.frame({ '@graph': Object.values(nodesById) }, frame);\n}\n\nfunction sortNodesByOrder(nodes: NodeObject[], nodeIdOrder: string[]): NodeObject[] {\n return nodes.sort(\n (aNode: NodeObject, bNode: NodeObject): number =>\n nodeIdOrder.indexOf(aNode['@id']!) - nodeIdOrder.indexOf(bNode['@id']!)\n );\n}\n\nfunction sortGraphOfNodeObject(graphObject: GraphObject, nodeIdOrder: string[]): GraphObject {\n return {\n ...graphObject,\n '@graph': sortNodesByOrder(graphObject['@graph'] as NodeObject[], nodeIdOrder)\n };\n}\n\nexport async function triplesToJsonld(\n triples: Quad[],\n skipFraming?: boolean,\n relations?: FindOptionsRelations,\n where?: FindOptionsWhere,\n orderedNodeIds?: string[],\n rdfTypes?: string[]\n): Promise<OrArray<NodeObject>> {\n if (triples.length === 0) {\n return [];\n }\n const { nodeIdOrder, nodesById } = triplesToNodes(triples);\n if (skipFraming) {\n return Object.values(nodesById);\n }\n\n // Extract the queried type from where clause for subclass handling\n const queriedType = where?.type && typeof where.type === 'string' ? where.type : undefined;\n\n const framed = await frameWithRelationsOrNonBlankNodes(\n nodesById, undefined, relations, where, queriedType, orderedNodeIds, rdfTypes\n );\n if ('@graph' in framed) {\n return sortNodesByOrder(framed['@graph'] as NodeObject[], orderedNodeIds ?? nodeIdOrder);\n }\n const { '@context': _unusedContext, ...framedWithoutContext } = framed;\n if (Object.keys(framedWithoutContext).length === 0) {\n return [];\n }\n return framed;\n}\n\nexport async function triplesToJsonldWithFrame(triples: Quad[], frame?: Frame): Promise<GraphObject> {\n const { nodeIdOrder, nodesById } = triplesToNodes(triples);\n const framed = await frameWithRelationsOrNonBlankNodes(nodesById, frame);\n if ('@graph' in framed) {\n return sortGraphOfNodeObject(framed as GraphObject, nodeIdOrder);\n }\n const { '@context': context, ...framedWithoutContext } = framed;\n const graphObject: GraphObject = {\n '@graph': [ framedWithoutContext as NodeObject ]\n };\n if (context) {\n graphObject['@context'] = context;\n }\n return graphObject;\n}\n\nexport function valueToLiteral(\n value: string | boolean | number | Date | JSONObject | JSONArray,\n datatype?: string\n): Literal | Variable {\n if (datatype) {\n if (datatype === '@json' || datatype === RDF.JSON) {\n return DataFactory.literal(JSON.stringify(value), RDF.JSON);\n }\n return DataFactory.literal((value as string | boolean | number).toString(), datatype);\n }\n if (typeof value === 'number') {\n if (Number.isInteger(value)) {\n return DataFactory.literal(value.toString(), XSD.integer);\n }\n return DataFactory.literal(value.toString(), XSD.decimal);\n }\n if (typeof value === 'boolean') {\n return DataFactory.literal(value.toString(), XSD.boolean);\n }\n if (typeof value === 'string' && value.startsWith('?') && value.length > 1) {\n return DataFactory.variable(value.slice(1));\n }\n if (value instanceof Date) {\n return DataFactory.literal(value.toISOString(), XSD.dateTime);\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return DataFactory.literal(value.toString());\n}\n"]}
|
|
1
|
+
{"version":3,"file":"TripleUtil.js","sourceRoot":"","sources":["../../src/util/TripleUtil.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable multiline-comment-style */\n/* eslint-disable capitalized-comments */\n/* eslint-disable indent */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport DataFactory from '@rdfjs/data-model';\nimport type { Literal, Quad, Quad_Object, Quad_Subject, Variable } from '@rdfjs/types';\nimport type { ContextDefinition, GraphObject, NodeObject, ValueObject } from 'jsonld';\nimport * as jsonld from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport { FindOperator } from '../storage/FindOperator';\nimport type { FindOptionsRelations, FindOptionsWhere } from '../storage/FindOptionsTypes';\nimport type { InverseRelationOperatorValue } from '../storage/operator/InverseRelation';\nimport type { JSONArray, JSONObject, OrArray } from './Types';\nimport { ensureArray } from './Util';\nimport { RDF, XSD } from './Vocabularies';\n\nconst BLANK_NODE_PREFIX = '_:';\n\nexport function toJSValueFromDataType(value: string, dataType: string): number | boolean | string {\n switch (dataType) {\n case XSD.int:\n case XSD.positiveInteger:\n case XSD.negativeInteger:\n case XSD.integer: {\n return Number.parseInt(value, 10);\n }\n case XSD.boolean: {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n return value;\n }\n case XSD.double:\n case XSD.decimal:\n case XSD.float: {\n return Number.parseFloat(value);\n }\n case RDF.JSON:\n return JSON.parse(value);\n default: {\n return value;\n }\n }\n}\n\nfunction toJsonLdObject(object: Quad_Object): NodeObject | ValueObject {\n if (object.termType === 'Literal') {\n if (object.language && object.language.length > 0) {\n return {\n '@value': object.value,\n '@language': object.language\n };\n }\n return {\n '@value': toJSValueFromDataType(object.value, object.datatype.value),\n '@type': object.datatype.value === RDF.JSON ? '@json' : object.datatype.value\n };\n }\n if (object.termType === 'BlankNode') {\n return { '@id': `_:${object.value}` };\n }\n return { '@id': object.value };\n}\n\nfunction toJsonLdSubject(object: Quad_Subject): string {\n if (object.termType === 'BlankNode') {\n return `_:${object.value}`;\n }\n return object.value;\n}\n\nfunction relationsToFrame(relations: FindOptionsRelations): NodeObject {\n return Object.entries(relations).reduce((obj: NodeObject, [ field, value ]): NodeObject => {\n const fieldFrame: Frame = {\n '@explicit': false\n };\n let contextAddition: ContextDefinition | undefined;\n if (typeof value === 'object' && value.type === 'operator') {\n const { resolvedName, relations: subRelations } = value.value as InverseRelationOperatorValue;\n contextAddition = { [resolvedName]: { '@reverse': field }};\n if (subRelations) {\n fieldFrame[resolvedName] = relationsToFrame(subRelations);\n } else {\n fieldFrame[resolvedName] = {\n \"@embed\": \"@always\"\n };\n }\n } else if (typeof value === 'boolean') {\n fieldFrame[field] = {\n \"@embed\": \"@always\"\n };\n } else {\n fieldFrame[field] = relationsToFrame(value as FindOptionsRelations);\n }\n if (contextAddition) {\n return {\n ...obj,\n '@context': {\n ...(obj['@context'] as ContextDefinition),\n ...contextAddition\n },\n ...fieldFrame\n };\n }\n return {\n ...obj,\n ...fieldFrame\n };\n }, {});\n}\n\nfunction whereToFrame(where: FindOptionsWhere): NodeObject {\n if (where.id && typeof where.id === 'string') {\n return { '@id': where.id };\n }\n if (where.id && FindOperator.isFindOperator(where.id)) {\n const operator = where.id as FindOperator<any, any>;\n if (operator.operator === 'in') {\n return { '@id': operator.value };\n }\n if (operator.operator === 'equal') {\n return { '@id': operator.value };\n }\n }\n if (where.type && typeof where.type === 'string') {\n return { '@type': where.type };\n }\n if (where.type && typeof where.type === 'object' && 'value' in where.type && typeof where.type.value === 'string') {\n return { '@type': where.type.value };\n }\n\n // Handle arbitrary property constraints\n /* const frame: NodeObject = {};\n Object.entries(where).forEach(([ key, value ]) => {\n if (key !== 'id' && key !== 'type') {\n if (typeof value === 'string') {\n frame[key] = { '@id': value };\n } else if (FindOperator.isFindOperator(value)) {\n const operator = value as FindOperator<any, any>;\n if (operator.operator === 'in') {\n frame[key] = { '@id': operator.value };\n }\n }\n }\n }); */\n\n return {};\n}\n\nfunction triplesToNodes(triples: Quad[]): {\n nodesById: Record<string, NodeObject>;\n nodeIdOrder: string[];\n} {\n const nodeIdOrder: string[] = [];\n const nodesById = triples.reduce((obj: Record<string, NodeObject>, triple): Record<string, NodeObject> => {\n const subject = toJsonLdSubject(triple.subject);\n const isTypePredicate = triple.predicate.value === RDF.type;\n const predicate = isTypePredicate ? '@type' : triple.predicate.value;\n const object = isTypePredicate ? triple.object.value : toJsonLdObject(triple.object);\n if (obj[subject]) {\n if (obj[subject][predicate]) {\n if (Array.isArray(obj[subject][predicate])) {\n (obj[subject][predicate]! as any[]).push(object);\n } else {\n obj[subject][predicate] = [ obj[subject][predicate]!, object ] as any;\n }\n } else {\n obj[subject][predicate] = object;\n }\n } else {\n obj[subject] = {\n '@id': subject,\n [predicate]: object\n };\n if (!subject.startsWith(BLANK_NODE_PREFIX)) {\n nodeIdOrder.push(subject);\n }\n }\n return obj;\n }, {});\n return { nodesById, nodeIdOrder };\n}\n\nasync function frameWithRelationsOrNonBlankNodes(\n nodesById: Record<string, NodeObject>,\n frame?: Frame,\n relations?: FindOptionsRelations,\n where?: FindOptionsWhere,\n queriedType?: string,\n orderedNodeIds?: string[],\n rdfTypes?: string[]\n): Promise<NodeObject> {\n if (!frame) {\n const relationsFrame = relations ? relationsToFrame(relations) : {};\n const whereFrame = where ? whereToFrame(where) : {};\n frame = { ...relationsFrame, ...whereFrame };\n const nodesValue = Object.values(nodesById);\n /* // eslint-disable-next-line no-console\n console.log('nodesValue', JSON.stringify(nodesValue, null, 2));\n // eslint-disable-next-line no-console\n console.log('whereFrame', JSON.stringify(whereFrame, null, 2));\n // eslint-disable-next-line no-console\n console.log('relationsFrame', JSON.stringify(relationsFrame, null, 2)); */\n /* Add all the @types in the nodes to the frame */\n const typeSet = new Set<string>();\n const hasTypeConstraint = whereFrame['@type'];\n const hasIriTypeConstraint = where?.id;\n\n if (Object.keys(frame).length === 0) {\n // Only add all types when there's no where constraint (no filtering)\n nodesValue.forEach((node: NodeObject): void => {\n const isBlankNode = node['@id']?.startsWith(BLANK_NODE_PREFIX);\n if (isBlankNode) {\n return;\n }\n if (node['@type'] && frame && typeof frame === 'object') {\n ensureArray(node['@type']).forEach((type: string): void => {\n typeSet.add(type);\n });\n }\n });\n frame['@type'] ??= [];\n frame['@type'] = [ ...typeSet ];\n } else if (hasTypeConstraint) {\n // For type-based queries, include the constraint type and types from entities that matched the WHERE clause\n const constraintType = hasTypeConstraint as string;\n\n // Always include the queried/constraint type\n typeSet.add(constraintType);\n if (rdfTypes && Array.isArray(rdfTypes)) {\n rdfTypes.forEach((rdfType: string): void => {\n typeSet.add(rdfType);\n });\n }\n\n // If we have orderedNodeIds (entities that matched the WHERE clause), only include types from those\n // This prevents over-matching related entities while still supporting subclass matching\n if (orderedNodeIds && orderedNodeIds.length > 0) {\n const orderedNodeIdSet = new Set(orderedNodeIds);\n nodesValue.forEach((node: NodeObject): void => {\n const nodeId = node['@id'];\n if (!nodeId || node['@id']?.startsWith(BLANK_NODE_PREFIX)) {\n return;\n }\n // Only include types from entities that matched the WHERE clause (in orderedNodeIds)\n if (orderedNodeIdSet.has(nodeId) && node['@type'] && frame && typeof frame === 'object') {\n const nodeTypes = ensureArray(node['@type']);\n nodeTypes.forEach((type: string | undefined): void => {\n if (type) {\n typeSet.add(type);\n }\n });\n }\n });\n } else {\n // Fallback: if no orderedNodeIds, only add types from entities with the constraint type\n nodesValue.forEach((node: NodeObject): void => {\n const isBlankNode = node['@id']?.startsWith(BLANK_NODE_PREFIX);\n if (isBlankNode) {\n return;\n }\n if (node['@type'] && frame && typeof frame === 'object') {\n const nodeTypes = ensureArray(node['@type']);\n if (nodeTypes.includes(constraintType)) {\n nodeTypes.forEach((type: string): void => {\n typeSet.add(type);\n });\n }\n }\n });\n }\n\n frame['@type'] ??= [];\n frame['@type'] = [ ...typeSet ];\n \n // When we have orderedNodeIds, restrict root-level results to only those IDs\n // This prevents related entities with the same type from appearing at the root level\n // Only apply this constraint if we have non-blank node IDs, since blank nodes\n // will be filtered out anyway and we need them during framing\n if (orderedNodeIds && orderedNodeIds.length > 0) {\n const nonBlankNodeIds = orderedNodeIds.filter((id: string): boolean => !id.startsWith('_:'));\n if (nonBlankNodeIds.length > 0) {\n const nonBlankNodeSet = new Set(\n Object.keys(nodesById).filter((nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX))\n );\n const matchingNodeIds = nonBlankNodeIds.filter((nodeId: string): boolean => nonBlankNodeSet.has(nodeId));\n if (matchingNodeIds.length > 0) {\n frame['@id'] = matchingNodeIds as any;\n }\n }\n }\n }\n else if (hasIriTypeConstraint && !frame['@id']) {\n frame['@id'] = Object.keys(nodesById).map((nodeId: string): string | undefined => {\n if (!nodeId.startsWith(BLANK_NODE_PREFIX)) {\n return nodeId;\n }\n return undefined;\n }).filter(Boolean) as any;\n }\n // When relations are in the frame but no type/id constraint exists,\n // jsonld.frame() may drop entities that lack the relation property.\n // Inject ordered parent entity IDs so they're always matched during framing.\n // Only do this when orderedNodeIds is explicitly provided (from the query adapter),\n // otherwise let jsonld.frame() use its default property-based matching.\n else if (relations && Object.keys(relations).length > 0 &&\n !frame['@type'] && !frame['@id'] &&\n orderedNodeIds && orderedNodeIds.length > 0) {\n const nonBlankNodeIds = orderedNodeIds.filter((id: string): boolean => !id.startsWith('_:'));\n if (nonBlankNodeIds.length > 0) {\n const nonBlankNodeSet = new Set(\n Object.keys(nodesById).filter((nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX))\n );\n const matchingNodeIds = nonBlankNodeIds.filter((nodeId: string): boolean => nonBlankNodeSet.has(nodeId));\n if (matchingNodeIds.length > 0) {\n frame['@id'] = matchingNodeIds as any;\n }\n }\n }\n if (Object.keys(frame).length > 0) {\n const results = await jsonld.frame({ '@graph': nodesValue }, frame);\n if (Array.isArray(results['@graph'])) {\n results['@graph'] = results['@graph'].filter(\n (node: NodeObject): boolean => (\n !node['@id']?.startsWith(BLANK_NODE_PREFIX) &&\n (\n Object.keys(node).length > 0 &&\n (\n !!node['@id'] ||\n !!node['@type'] ||\n Object.entries(node).some(([ key, value ]): boolean => key !== '@context' && value !== null)\n )\n )\n )\n );\n }\n if (typeof frame === 'object' && '@context' in frame && Object.keys(frame['@context']!).length > 0) {\n let resultsList;\n if (Array.isArray(results)) {\n resultsList = results;\n } else if ('@graph' in results) {\n resultsList = ensureArray(results['@graph']);\n } else {\n const { '@context': unusedContext, ...entityResult } = results;\n resultsList = [ entityResult ];\n }\n /* return {\n '@graph': resultsList.filter((result): boolean =>\n Object.keys((frame as NodeObject)['@context']!).some((relationField): boolean => relationField in result))\n }; */\n return resultsList as NodeObject;\n }\n return results;\n }\n const nonBlankNodes = Object.keys(nodesById).filter(\n (nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX)\n );\n return await jsonld.frame({ '@graph': Object.values(nodesById) }, { '@id': nonBlankNodes as any });\n }\n return await jsonld.frame({ '@graph': Object.values(nodesById) }, frame);\n}\n\nfunction sortNodesByOrder(nodes: NodeObject[], nodeIdOrder: string[]): NodeObject[] {\n return nodes.sort(\n (aNode: NodeObject, bNode: NodeObject): number =>\n nodeIdOrder.indexOf(aNode['@id']!) - nodeIdOrder.indexOf(bNode['@id']!)\n );\n}\n\nfunction sortGraphOfNodeObject(graphObject: GraphObject, nodeIdOrder: string[]): GraphObject {\n return {\n ...graphObject,\n '@graph': sortNodesByOrder(graphObject['@graph'] as NodeObject[], nodeIdOrder)\n };\n}\n\nexport async function triplesToJsonld(\n triples: Quad[],\n skipFraming?: boolean,\n relations?: FindOptionsRelations,\n where?: FindOptionsWhere,\n orderedNodeIds?: string[],\n rdfTypes?: string[]\n): Promise<OrArray<NodeObject>> {\n if (triples.length === 0) {\n return [];\n }\n const { nodeIdOrder, nodesById } = triplesToNodes(triples);\n if (skipFraming) {\n return Object.values(nodesById);\n }\n\n // Extract the queried type from where clause for subclass handling\n const queriedType = where?.type && typeof where.type === 'string' ? where.type : undefined;\n\n const framed = await frameWithRelationsOrNonBlankNodes(\n nodesById, undefined, relations, where, queriedType, orderedNodeIds, rdfTypes\n );\n if ('@graph' in framed) {\n return sortNodesByOrder(framed['@graph'] as NodeObject[], orderedNodeIds ?? nodeIdOrder);\n }\n const { '@context': _unusedContext, ...framedWithoutContext } = framed;\n if (Object.keys(framedWithoutContext).length === 0) {\n return [];\n }\n return framed;\n}\n\nexport async function triplesToJsonldWithFrame(triples: Quad[], frame?: Frame): Promise<GraphObject> {\n const { nodeIdOrder, nodesById } = triplesToNodes(triples);\n const framed = await frameWithRelationsOrNonBlankNodes(nodesById, frame);\n if ('@graph' in framed) {\n return sortGraphOfNodeObject(framed as GraphObject, nodeIdOrder);\n }\n const { '@context': context, ...framedWithoutContext } = framed;\n const graphObject: GraphObject = {\n '@graph': [ framedWithoutContext as NodeObject ]\n };\n if (context) {\n graphObject['@context'] = context;\n }\n return graphObject;\n}\n\nexport function valueToLiteral(\n value: string | boolean | number | Date | JSONObject | JSONArray,\n datatype?: string\n): Literal | Variable {\n if (datatype) {\n if (datatype === '@json' || datatype === RDF.JSON) {\n return DataFactory.literal(JSON.stringify(value), RDF.JSON);\n }\n return DataFactory.literal((value as string | boolean | number).toString(), datatype);\n }\n if (typeof value === 'number') {\n if (Number.isInteger(value)) {\n return DataFactory.literal(value.toString(), XSD.integer);\n }\n return DataFactory.literal(value.toString(), XSD.decimal);\n }\n if (typeof value === 'boolean') {\n return DataFactory.literal(value.toString(), XSD.boolean);\n }\n if (typeof value === 'string' && value.startsWith('?') && value.length > 1) {\n return DataFactory.variable(value.slice(1));\n }\n if (value instanceof Date) {\n return DataFactory.literal(value.toISOString(), XSD.dateTime);\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return DataFactory.literal(value.toString());\n}\n"]}
|
package/dist/util/Types.d.ts
CHANGED
|
@@ -181,6 +181,10 @@ export interface CapabilityConfig {
|
|
|
181
181
|
* When true, the operation will be buffered.
|
|
182
182
|
*/
|
|
183
183
|
readonly buffer?: boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Additional options to pass to the axios request.
|
|
186
|
+
*/
|
|
187
|
+
readonly axiosOptions?: Record<string, any>;
|
|
184
188
|
}
|
|
185
189
|
export interface Callbacks {
|
|
186
190
|
/**
|
package/dist/util/Types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/util/Types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/util/Types.ts"],"names":[],"mappings":"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"}
|
package/dist/util/Types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/util/Types.ts"],"names":[],"mappings":"","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { ReferenceNodeObject, TriplesMap } from '@comake/rmlmapper-js';\nimport type {\n GraphObject,\n IdMap,\n IncludedBlock,\n IndexMap,\n LanguageMap,\n ListObject,\n NodeObject,\n SetObject,\n TypeMap\n} from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport type { EngineConstants } from '../constants';\nimport type { FindAllOptions, FindOneOptions, FindOptionsWhere } from '../storage/FindOptionsTypes';\nimport type { GroupByOptions, GroupByResponse } from '../storage/GroupOptionTypes';\nimport type { RawQueryResult } from '../storage/query-adapter/QueryAdapter';\nimport type { RDF, SHACL } from './Vocabularies';\n\nexport type JSONPrimitive = string | number | boolean | null;\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\nexport interface JSONObject {\n [key: string]: JSONValue | undefined;\n}\nexport interface JSONArray extends Array<JSONValue> {}\n\nexport type JSONValue = JSONPrimitive | JSONObject | JSONValue[];\n\nexport interface RdfList<T> {\n [RDF.first]: T;\n [RDF.rest]?: RdfList<T> | typeof RDF.nil | ReferenceNodeObject;\n}\n\nexport interface ValueObject<T extends string | boolean | number | JSONObject | JSONArray> {\n ['@type']: string;\n ['@value']: T;\n ['@language']?: string;\n ['@direction']?: string;\n}\n\nexport type IRIObject<T extends string = string> = { '@id': T };\n\nexport type ShaclIRI = string | IRIObject;\nexport type ShaclIRIOrLiteral = ShaclIRI | ValueObject<any>;\n\nexport type NodeKindValues =\n | typeof SHACL.Literal\n | typeof SHACL.IRI\n | typeof SHACL.BlankNode\n | typeof SHACL.BlankNodeOrIRI\n | typeof SHACL.BlankNodeOrLiteral\n | typeof SHACL.IRIOrLiteral;\n\nexport type BaseShape = NodeObject & {\n [SHACL.targetNode]?: ShaclIRIOrLiteral;\n [SHACL.targetClass]?: ShaclIRI;\n [SHACL.targetSubjectsOf]?: ShaclIRI;\n [SHACL.targetObjectOf]?: ShaclIRI;\n [SHACL.severity]?: ShaclIRI;\n [SHACL.message]?: OrArray<ValueObject<string>>;\n [SHACL.deactivated]?: ValueObject<boolean>;\n [SHACL.and]?: ShapesListShape;\n [SHACL.class]?: OrArray<ShaclIRI>;\n [SHACL.closed]?: ValueObject<boolean>;\n [SHACL.ignoredProperties]?: ShaclIRI[];\n [SHACL.disjoint]?: OrArray<ShaclIRI>;\n [SHACL.equals]?: OrArray<ShaclIRI>;\n [SHACL.in]?: ListObject;\n [SHACL.languageIn]?: string[];\n [SHACL.maxExclusive]?: ValueObject<number>;\n [SHACL.maxInclusive]?: ValueObject<number>;\n [SHACL.maxLength]?: ValueObject<number>;\n [SHACL.minExclusive]?: ValueObject<number>;\n [SHACL.minInclusive]?: ValueObject<number>;\n [SHACL.minLength]?: ValueObject<number>;\n [SHACL.nodeKind]?: IRIObject<NodeKindValues>;\n [SHACL.or]?: ShapesListShape;\n [SHACL.pattern]?: ValueObject<string>;\n [SHACL.flags]?: ValueObject<string>;\n [SHACL.xone]?: ShapesListShape;\n};\n\nexport type ShapesListShape = (PropertyShape | NodeShape)[];\n\nexport interface PropertyShape extends BaseShape {\n [SHACL.path]: PathTypes;\n [SHACL.datatype]?: ShaclIRI;\n [SHACL.node]?: OrArray<NodeShape>;\n [SHACL.name]?: ValueObject<string>;\n [SHACL.description]?: ValueObject<string>;\n [SHACL.minCount]?: ValueObject<number>;\n [SHACL.maxCount]?: ValueObject<number>;\n [SHACL.lessThanOrEquals]?: OrArray<ShaclIRI>;\n [SHACL.lessThan]?: OrArray<ShaclIRI>;\n [SHACL.qualifiedValueShape]?: OrArray<BaseShape>;\n [SHACL.qualifiedMaxCount]?: ValueObject<number>;\n [SHACL.qualifiedMinCount]?: ValueObject<number>;\n [SHACL.qualifiedValueShapesDisjoint]?: ValueObject<boolean>;\n [SHACL.uniqueLang]?: ValueObject<boolean>;\n}\n\nexport interface NodeShape extends BaseShape {\n '@type': typeof SHACL.NodeShape;\n [EngineConstants.prop.label]?: ValueObject<string>;\n [SHACL.property]: OrArray<PropertyShape>;\n}\n\nexport interface InverseShaclPath extends NodeObject {\n [SHACL.inversePath]: PathShape;\n}\n\nexport interface ZeroOrMoreShaclPath extends NodeObject {\n [SHACL.zeroOrMorePath]: PathShape;\n}\n\nexport interface OneOrMoreShaclPath extends NodeObject {\n [SHACL.oneOrMorePath]: PathShape;\n}\n\nexport interface ZeroOrOneShaclPath extends NodeObject {\n [SHACL.zeroOrOnePath]: PathShape;\n}\n\nexport interface AlternativeShaclPath extends NodeObject {\n [SHACL.alternativePath]: PathTypes[];\n}\n\nexport type PathTypes =\n | ShaclIRI\n | AlternativeShaclPath\n | ZeroOrMoreShaclPath\n | OneOrMoreShaclPath\n | ZeroOrOneShaclPath\n | InverseShaclPath;\n\nexport type PathShape = OrArray<PathTypes>;\n\nexport type Mapping = NodeObject & {\n [EngineConstants.prop.preProcessingMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.preProcessingMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputsMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.inputsMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputsMappingRef]?: string | ValueObject<string>;\n [EngineConstants.prop.operationId]?: ValueObject<string>;\n [EngineConstants.prop.operationMapping]?: TriplesMap;\n [EngineConstants.prop.capability]?: ReferenceNodeObject;\n [EngineConstants.prop.outputsMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.outputsMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.series]?: { '@list': CapabilityMapping[] } | (RdfList<CapabilityMapping> & NodeObject);\n [EngineConstants.prop.parallel]?: OrArray<CapabilityMapping>;\n};\n\nexport type Capability = NodeObject & {\n '@id': string;\n '@type': typeof EngineConstants.spec.capability;\n [EngineConstants.prop.label]?: ValueObject<string>;\n [EngineConstants.prop.inputsContext]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputs]?: NodeShape | ReferenceNodeObject;\n [EngineConstants.prop.outputsContext]?: ValueObject<JSONObject>;\n [EngineConstants.prop.outputs]?: NodeShape | ReferenceNodeObject;\n};\n\nexport type CapabilityMapping = Mapping & {\n [EngineConstants.prop.capability]: ReferenceNodeObject;\n [EngineConstants.prop.object]?: ReferenceNodeObject;\n [EngineConstants.prop.integration]?: ReferenceNodeObject;\n};\n\nexport type MappingWithInputs = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.inputs | typeof EngineConstants.prop.inputsMapping>>;\n\nexport type MappingWithInputsReference = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.inputsReference>>;\n\nexport type MappingWithOutputsMapping = CapabilityMapping &\nRequired<\nPick<\nCapabilityMapping,\n typeof EngineConstants.prop.outputsMapping | typeof EngineConstants.prop.outputsMappingFrame\n>\n>;\n\nexport type MappingWithSeries = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.series>>;\n\nexport type MappingWithParallel = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.parallel>>;\n\nexport interface SeriesCapabilityArgs extends JSONObject {\n originalCapabilityParameters: JSONObject;\n previousCapabilityReturnValue: JSONObject;\n allStepsResults: JSONObject[];\n}\n\nexport type TriggerMapping = Mapping & {\n [EngineConstants.prop.integration]: ReferenceNodeObject;\n};\n\nexport type PossibleArrayFieldValues =\n | boolean\n | number\n | string\n | NodeObject\n | GraphObject\n | ValueObject<any>\n | ListObject\n | SetObject;\n\nexport type EntityFieldSingularValue =\n | boolean\n | number\n | string\n | NodeObject\n | GraphObject\n | ValueObject<any>\n | ListObject\n | SetObject;\n\nexport type EntityFieldValue =\n | OrArray<EntityFieldSingularValue>\n | LanguageMap\n | IndexMap\n | IncludedBlock\n | IdMap\n | TypeMap\n | NodeObject[keyof NodeObject];\n\nexport interface Entity {\n '@id': string;\n '@type': OrArray<string>;\n [key: string]: EntityFieldValue;\n}\n\nexport type OrArray<T> = T | T[];\n\nexport interface OperationResponse extends JSONObject {\n data: JSONObject;\n operationParameters: JSONObject;\n}\n\nexport interface CapabilityConfig {\n /**\n * Callbacks to execute upon events.\n * If global callbacks are provided, both are executed.\n */\n callbacks?: Callbacks;\n /**\n * When true, disables validation of capability parameters and\n * return values according to schemas. Overrides the global setting.\n */\n readonly disableValidation?: boolean;\n /**\n * An object containing files keyed on their title that can be used in mappings.\n * Merged with the global setting. The capability config taking prededence in the case of overlapping names.\n */\n readonly inputFiles?: Record<string, string>;\n /**\n * Manually defined functions which can be used in mappings.\n * Merged with the global setting. The capability config taking prededence in the case of overlapping names.\n */\n readonly functions?: Record<string, (args: any | any[]) => any>;\n\n /**\n * When true, the operation will be streamed.\n */\n readonly stream?: boolean;\n\n /**\n * When true, the operation will be buffered.\n */\n readonly buffer?: boolean;\n}\n\nexport interface Callbacks {\n /**\n * Callback run when a Capability starts being executed\n */\n onCapabilityStart?: (capability: string, args: Record<string, any>) => void;\n /**\n * Callback run when a Capability is finished being executed\n */\n onCapabilityEnd?: (capability: string, returnValue: Record<string, any>) => void;\n}\n\nexport interface SKLEngineInterface {\n /**\n * Finds the first entity by the given find options\n */\n find: (options?: FindOneOptions) => Promise<Entity>;\n\n /**\n * Finds the first entity that matches the given where condition\n */\n findBy: (where: FindOptionsWhere, notFoundErrorMessage?: string) => Promise<Entity>;\n\n /**\n * Finds the first entity that matches the given where condition, or undefined if not found\n */\n findByIfExists: (options: FindOptionsWhere) => Promise<Entity | undefined>;\n\n /**\n * Finds entities that match the given find options\n */\n findAll: (options?: FindAllOptions) => Promise<Entity[]>;\n\n /**\n * Groups entities by the given options\n */\n groupBy: (options: GroupByOptions) => Promise<GroupByResponse>;\n\n /**\n * Finds entities that match the given where condition\n */\n findAllBy: (where: FindOptionsWhere) => Promise<Entity[]>;\n\n /**\n * Determines if an entity matching the given options exists\n */\n exists: (options?: FindAllOptions) => Promise<boolean>;\n\n /**\n * Returns a count of entities matching the given options\n */\n count: (options?: FindAllOptions) => Promise<number>;\n\n /**\n * Saves a given entity or entities\n */\n save: ((entity: Entity) => Promise<Entity>) & ((entities: Entity[]) => Promise<Entity[]>);\n\n /**\n * Updates an entity or entities partially\n */\n update: ((id: string, attributes: Partial<Entity>) => Promise<void>) &\n ((ids: string[], attributes: Partial<Entity>) => Promise<void>);\n\n /**\n * Removes an entity or entities from the database by id\n */\n delete: ((id: string) => Promise<void>) & ((ids: string[]) => Promise<void>);\n\n /**\n * Removes a given entity or entities from the database\n */\n destroy: ((entity: Entity) => Promise<Entity>) & ((entities: Entity[]) => Promise<Entity[]>);\n\n /**\n * Performs a mapping operation\n */\n performMapping: (\n args: JSONValue,\n mapping: OrArray<NodeObject>,\n frame?: Record<string, any>,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<NodeObject>;\n\n /**\n * Executes a raw query\n */\n executeRawQuery: <T extends RawQueryResult>(query: string) => Promise<T[]>;\n\n /**\n * Executes a raw update query\n */\n executeRawUpdate: (query: string) => Promise<void>;\n\n /**\n * Executes a raw construct query\n */\n executeRawConstructQuery: (query: string, frame?: Frame) => Promise<GraphObject>;\n\n /**\n * Record of capability handlers by name\n */\n capability: Record<string, (params: JSONObject, capabilityConfig?: CapabilityConfig) => Promise<any>>;\n\n /**\n * Finds and executes a capability\n */\n findAndExecuteCapability: (\n capabilityId: string,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<OrArray<NodeObject>>;\n\n executeCapability: (\n capability: Capability,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<OrArray<NodeObject>>;\n\n executeMapping: (\n mapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n account?: Entity,\n ) => Promise<OrArray<NodeObject>>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Types.js","sourceRoot":"","sources":["../../src/util/Types.ts"],"names":[],"mappings":"","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport type { ReferenceNodeObject, TriplesMap } from '@comake/rmlmapper-js';\nimport type {\n GraphObject,\n IdMap,\n IncludedBlock,\n IndexMap,\n LanguageMap,\n ListObject,\n NodeObject,\n SetObject,\n TypeMap\n} from 'jsonld';\nimport type { Frame } from 'jsonld/jsonld-spec';\nimport type { EngineConstants } from '../constants';\nimport type { FindAllOptions, FindOneOptions, FindOptionsWhere } from '../storage/FindOptionsTypes';\nimport type { GroupByOptions, GroupByResponse } from '../storage/GroupOptionTypes';\nimport type { RawQueryResult } from '../storage/query-adapter/QueryAdapter';\nimport type { RDF, SHACL } from './Vocabularies';\n\nexport type JSONPrimitive = string | number | boolean | null;\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\nexport interface JSONObject {\n [key: string]: JSONValue | undefined;\n}\nexport interface JSONArray extends Array<JSONValue> {}\n\nexport type JSONValue = JSONPrimitive | JSONObject | JSONValue[];\n\nexport interface RdfList<T> {\n [RDF.first]: T;\n [RDF.rest]?: RdfList<T> | typeof RDF.nil | ReferenceNodeObject;\n}\n\nexport interface ValueObject<T extends string | boolean | number | JSONObject | JSONArray> {\n ['@type']: string;\n ['@value']: T;\n ['@language']?: string;\n ['@direction']?: string;\n}\n\nexport type IRIObject<T extends string = string> = { '@id': T };\n\nexport type ShaclIRI = string | IRIObject;\nexport type ShaclIRIOrLiteral = ShaclIRI | ValueObject<any>;\n\nexport type NodeKindValues =\n | typeof SHACL.Literal\n | typeof SHACL.IRI\n | typeof SHACL.BlankNode\n | typeof SHACL.BlankNodeOrIRI\n | typeof SHACL.BlankNodeOrLiteral\n | typeof SHACL.IRIOrLiteral;\n\nexport type BaseShape = NodeObject & {\n [SHACL.targetNode]?: ShaclIRIOrLiteral;\n [SHACL.targetClass]?: ShaclIRI;\n [SHACL.targetSubjectsOf]?: ShaclIRI;\n [SHACL.targetObjectOf]?: ShaclIRI;\n [SHACL.severity]?: ShaclIRI;\n [SHACL.message]?: OrArray<ValueObject<string>>;\n [SHACL.deactivated]?: ValueObject<boolean>;\n [SHACL.and]?: ShapesListShape;\n [SHACL.class]?: OrArray<ShaclIRI>;\n [SHACL.closed]?: ValueObject<boolean>;\n [SHACL.ignoredProperties]?: ShaclIRI[];\n [SHACL.disjoint]?: OrArray<ShaclIRI>;\n [SHACL.equals]?: OrArray<ShaclIRI>;\n [SHACL.in]?: ListObject;\n [SHACL.languageIn]?: string[];\n [SHACL.maxExclusive]?: ValueObject<number>;\n [SHACL.maxInclusive]?: ValueObject<number>;\n [SHACL.maxLength]?: ValueObject<number>;\n [SHACL.minExclusive]?: ValueObject<number>;\n [SHACL.minInclusive]?: ValueObject<number>;\n [SHACL.minLength]?: ValueObject<number>;\n [SHACL.nodeKind]?: IRIObject<NodeKindValues>;\n [SHACL.or]?: ShapesListShape;\n [SHACL.pattern]?: ValueObject<string>;\n [SHACL.flags]?: ValueObject<string>;\n [SHACL.xone]?: ShapesListShape;\n};\n\nexport type ShapesListShape = (PropertyShape | NodeShape)[];\n\nexport interface PropertyShape extends BaseShape {\n [SHACL.path]: PathTypes;\n [SHACL.datatype]?: ShaclIRI;\n [SHACL.node]?: OrArray<NodeShape>;\n [SHACL.name]?: ValueObject<string>;\n [SHACL.description]?: ValueObject<string>;\n [SHACL.minCount]?: ValueObject<number>;\n [SHACL.maxCount]?: ValueObject<number>;\n [SHACL.lessThanOrEquals]?: OrArray<ShaclIRI>;\n [SHACL.lessThan]?: OrArray<ShaclIRI>;\n [SHACL.qualifiedValueShape]?: OrArray<BaseShape>;\n [SHACL.qualifiedMaxCount]?: ValueObject<number>;\n [SHACL.qualifiedMinCount]?: ValueObject<number>;\n [SHACL.qualifiedValueShapesDisjoint]?: ValueObject<boolean>;\n [SHACL.uniqueLang]?: ValueObject<boolean>;\n}\n\nexport interface NodeShape extends BaseShape {\n '@type': typeof SHACL.NodeShape;\n [EngineConstants.prop.label]?: ValueObject<string>;\n [SHACL.property]: OrArray<PropertyShape>;\n}\n\nexport interface InverseShaclPath extends NodeObject {\n [SHACL.inversePath]: PathShape;\n}\n\nexport interface ZeroOrMoreShaclPath extends NodeObject {\n [SHACL.zeroOrMorePath]: PathShape;\n}\n\nexport interface OneOrMoreShaclPath extends NodeObject {\n [SHACL.oneOrMorePath]: PathShape;\n}\n\nexport interface ZeroOrOneShaclPath extends NodeObject {\n [SHACL.zeroOrOnePath]: PathShape;\n}\n\nexport interface AlternativeShaclPath extends NodeObject {\n [SHACL.alternativePath]: PathTypes[];\n}\n\nexport type PathTypes =\n | ShaclIRI\n | AlternativeShaclPath\n | ZeroOrMoreShaclPath\n | OneOrMoreShaclPath\n | ZeroOrOneShaclPath\n | InverseShaclPath;\n\nexport type PathShape = OrArray<PathTypes>;\n\nexport type Mapping = NodeObject & {\n [EngineConstants.prop.preProcessingMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.preProcessingMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputsMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.inputsMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputsMappingRef]?: string | ValueObject<string>;\n [EngineConstants.prop.operationId]?: ValueObject<string>;\n [EngineConstants.prop.operationMapping]?: TriplesMap;\n [EngineConstants.prop.capability]?: ReferenceNodeObject;\n [EngineConstants.prop.outputsMapping]?: OrArray<TriplesMap>;\n [EngineConstants.prop.outputsMappingFrame]?: ValueObject<JSONObject>;\n [EngineConstants.prop.series]?: { '@list': CapabilityMapping[] } | (RdfList<CapabilityMapping> & NodeObject);\n [EngineConstants.prop.parallel]?: OrArray<CapabilityMapping>;\n};\n\nexport type Capability = NodeObject & {\n '@id': string;\n '@type': typeof EngineConstants.spec.capability;\n [EngineConstants.prop.label]?: ValueObject<string>;\n [EngineConstants.prop.inputsContext]?: ValueObject<JSONObject>;\n [EngineConstants.prop.inputs]?: NodeShape | ReferenceNodeObject;\n [EngineConstants.prop.outputsContext]?: ValueObject<JSONObject>;\n [EngineConstants.prop.outputs]?: NodeShape | ReferenceNodeObject;\n};\n\nexport type CapabilityMapping = Mapping & {\n [EngineConstants.prop.capability]: ReferenceNodeObject;\n [EngineConstants.prop.object]?: ReferenceNodeObject;\n [EngineConstants.prop.integration]?: ReferenceNodeObject;\n};\n\nexport type MappingWithInputs = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.inputs | typeof EngineConstants.prop.inputsMapping>>;\n\nexport type MappingWithInputsReference = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.inputsReference>>;\n\nexport type MappingWithOutputsMapping = CapabilityMapping &\nRequired<\nPick<\nCapabilityMapping,\n typeof EngineConstants.prop.outputsMapping | typeof EngineConstants.prop.outputsMappingFrame\n>\n>;\n\nexport type MappingWithSeries = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.series>>;\n\nexport type MappingWithParallel = CapabilityMapping &\nRequired<Pick<CapabilityMapping, typeof EngineConstants.prop.parallel>>;\n\nexport interface SeriesCapabilityArgs extends JSONObject {\n originalCapabilityParameters: JSONObject;\n previousCapabilityReturnValue: JSONObject;\n allStepsResults: JSONObject[];\n}\n\nexport type TriggerMapping = Mapping & {\n [EngineConstants.prop.integration]: ReferenceNodeObject;\n};\n\nexport type PossibleArrayFieldValues =\n | boolean\n | number\n | string\n | NodeObject\n | GraphObject\n | ValueObject<any>\n | ListObject\n | SetObject;\n\nexport type EntityFieldSingularValue =\n | boolean\n | number\n | string\n | NodeObject\n | GraphObject\n | ValueObject<any>\n | ListObject\n | SetObject;\n\nexport type EntityFieldValue =\n | OrArray<EntityFieldSingularValue>\n | LanguageMap\n | IndexMap\n | IncludedBlock\n | IdMap\n | TypeMap\n | NodeObject[keyof NodeObject];\n\nexport interface Entity {\n '@id': string;\n '@type': OrArray<string>;\n [key: string]: EntityFieldValue;\n}\n\nexport type OrArray<T> = T | T[];\n\nexport interface OperationResponse extends JSONObject {\n data: JSONObject;\n operationParameters: JSONObject;\n}\n\nexport interface CapabilityConfig {\n /**\n * Callbacks to execute upon events.\n * If global callbacks are provided, both are executed.\n */\n callbacks?: Callbacks;\n /**\n * When true, disables validation of capability parameters and\n * return values according to schemas. Overrides the global setting.\n */\n readonly disableValidation?: boolean;\n /**\n * An object containing files keyed on their title that can be used in mappings.\n * Merged with the global setting. The capability config taking prededence in the case of overlapping names.\n */\n readonly inputFiles?: Record<string, string>;\n /**\n * Manually defined functions which can be used in mappings.\n * Merged with the global setting. The capability config taking prededence in the case of overlapping names.\n */\n readonly functions?: Record<string, (args: any | any[]) => any>;\n\n /**\n * When true, the operation will be streamed.\n */\n readonly stream?: boolean;\n\n /**\n * When true, the operation will be buffered.\n */\n readonly buffer?: boolean;\n\n\n /**\n * Additional options to pass to the axios request.\n */\n readonly axiosOptions?: Record<string, any>;\n}\n\nexport interface Callbacks {\n /**\n * Callback run when a Capability starts being executed\n */\n onCapabilityStart?: (capability: string, args: Record<string, any>) => void;\n /**\n * Callback run when a Capability is finished being executed\n */\n onCapabilityEnd?: (capability: string, returnValue: Record<string, any>) => void;\n}\n\nexport interface SKLEngineInterface {\n /**\n * Finds the first entity by the given find options\n */\n find: (options?: FindOneOptions) => Promise<Entity>;\n\n /**\n * Finds the first entity that matches the given where condition\n */\n findBy: (where: FindOptionsWhere, notFoundErrorMessage?: string) => Promise<Entity>;\n\n /**\n * Finds the first entity that matches the given where condition, or undefined if not found\n */\n findByIfExists: (options: FindOptionsWhere) => Promise<Entity | undefined>;\n\n /**\n * Finds entities that match the given find options\n */\n findAll: (options?: FindAllOptions) => Promise<Entity[]>;\n\n /**\n * Groups entities by the given options\n */\n groupBy: (options: GroupByOptions) => Promise<GroupByResponse>;\n\n /**\n * Finds entities that match the given where condition\n */\n findAllBy: (where: FindOptionsWhere) => Promise<Entity[]>;\n\n /**\n * Determines if an entity matching the given options exists\n */\n exists: (options?: FindAllOptions) => Promise<boolean>;\n\n /**\n * Returns a count of entities matching the given options\n */\n count: (options?: FindAllOptions) => Promise<number>;\n\n /**\n * Saves a given entity or entities\n */\n save: ((entity: Entity) => Promise<Entity>) & ((entities: Entity[]) => Promise<Entity[]>);\n\n /**\n * Updates an entity or entities partially\n */\n update: ((id: string, attributes: Partial<Entity>) => Promise<void>) &\n ((ids: string[], attributes: Partial<Entity>) => Promise<void>);\n\n /**\n * Removes an entity or entities from the database by id\n */\n delete: ((id: string) => Promise<void>) & ((ids: string[]) => Promise<void>);\n\n /**\n * Removes a given entity or entities from the database\n */\n destroy: ((entity: Entity) => Promise<Entity>) & ((entities: Entity[]) => Promise<Entity[]>);\n\n /**\n * Performs a mapping operation\n */\n performMapping: (\n args: JSONValue,\n mapping: OrArray<NodeObject>,\n frame?: Record<string, any>,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<NodeObject>;\n\n /**\n * Executes a raw query\n */\n executeRawQuery: <T extends RawQueryResult>(query: string) => Promise<T[]>;\n\n /**\n * Executes a raw update query\n */\n executeRawUpdate: (query: string) => Promise<void>;\n\n /**\n * Executes a raw construct query\n */\n executeRawConstructQuery: (query: string, frame?: Frame) => Promise<GraphObject>;\n\n /**\n * Record of capability handlers by name\n */\n capability: Record<string, (params: JSONObject, capabilityConfig?: CapabilityConfig) => Promise<any>>;\n\n /**\n * Finds and executes a capability\n */\n findAndExecuteCapability: (\n capabilityId: string,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<OrArray<NodeObject>>;\n\n executeCapability: (\n capability: Capability,\n capabilityArgs: JSONObject,\n capabilityConfig?: CapabilityConfig,\n ) => Promise<OrArray<NodeObject>>;\n\n executeMapping: (\n mapping: Mapping,\n args: JSONObject,\n capabilityConfig?: CapabilityConfig,\n account?: Entity,\n ) => Promise<OrArray<NodeObject>>;\n}\n"]}
|
package/package.json
CHANGED
package/src/SklEngine.ts
CHANGED
|
@@ -1506,6 +1506,12 @@ export class SKLEngine implements SKLEngineInterface {
|
|
|
1506
1506
|
responseType: 'arraybuffer'
|
|
1507
1507
|
};
|
|
1508
1508
|
}
|
|
1509
|
+
if (capabilityConfig?.axiosOptions && typeof capabilityConfig.axiosOptions === 'object' && Object.keys(capabilityConfig.axiosOptions).length > 0) {
|
|
1510
|
+
executeOperationOptions = {
|
|
1511
|
+
...executeOperationOptions,
|
|
1512
|
+
...capabilityConfig.axiosOptions
|
|
1513
|
+
};
|
|
1514
|
+
}
|
|
1509
1515
|
response = await openApiExecutor.executeOperation(
|
|
1510
1516
|
operationId,
|
|
1511
1517
|
configuration,
|
package/src/util/TripleUtil.ts
CHANGED
|
@@ -301,6 +301,25 @@ async function frameWithRelationsOrNonBlankNodes(
|
|
|
301
301
|
return undefined;
|
|
302
302
|
}).filter(Boolean) as any;
|
|
303
303
|
}
|
|
304
|
+
// When relations are in the frame but no type/id constraint exists,
|
|
305
|
+
// jsonld.frame() may drop entities that lack the relation property.
|
|
306
|
+
// Inject ordered parent entity IDs so they're always matched during framing.
|
|
307
|
+
// Only do this when orderedNodeIds is explicitly provided (from the query adapter),
|
|
308
|
+
// otherwise let jsonld.frame() use its default property-based matching.
|
|
309
|
+
else if (relations && Object.keys(relations).length > 0 &&
|
|
310
|
+
!frame['@type'] && !frame['@id'] &&
|
|
311
|
+
orderedNodeIds && orderedNodeIds.length > 0) {
|
|
312
|
+
const nonBlankNodeIds = orderedNodeIds.filter((id: string): boolean => !id.startsWith('_:'));
|
|
313
|
+
if (nonBlankNodeIds.length > 0) {
|
|
314
|
+
const nonBlankNodeSet = new Set(
|
|
315
|
+
Object.keys(nodesById).filter((nodeId: string): boolean => !nodeId.startsWith(BLANK_NODE_PREFIX))
|
|
316
|
+
);
|
|
317
|
+
const matchingNodeIds = nonBlankNodeIds.filter((nodeId: string): boolean => nonBlankNodeSet.has(nodeId));
|
|
318
|
+
if (matchingNodeIds.length > 0) {
|
|
319
|
+
frame['@id'] = matchingNodeIds as any;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
304
323
|
if (Object.keys(frame).length > 0) {
|
|
305
324
|
const results = await jsonld.frame({ '@graph': nodesValue }, frame);
|
|
306
325
|
if (Array.isArray(results['@graph'])) {
|
package/src/util/Types.ts
CHANGED
|
@@ -270,6 +270,12 @@ export interface CapabilityConfig {
|
|
|
270
270
|
* When true, the operation will be buffered.
|
|
271
271
|
*/
|
|
272
272
|
readonly buffer?: boolean;
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Additional options to pass to the axios request.
|
|
277
|
+
*/
|
|
278
|
+
readonly axiosOptions?: Record<string, any>;
|
|
273
279
|
}
|
|
274
280
|
|
|
275
281
|
export interface Callbacks {
|