npm package diff
Package: @forge/manifest
Versions: 7.7.0-next.12 - 7.5.2-next.0-experimental-204139e
File: package/out/interpolator/string-resource-interpolator.js
Index: package/out/interpolator/string-resource-interpolator.js
===================================================================
--- package/out/interpolator/string-resource-interpolator.js
+++ package/out/interpolator/string-resource-interpolator.js
@@ -1,70 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.StringResourceInterpolator = exports.StringResourceInterpolatorError = void 0;
-const fs_1 = require("fs");
-const types_1 = require("../types");
-const errors_1 = require("../text/errors");
-const manifest_interpolator_1 = require("./manifest-interpolator");
-const mime_types_1 = require("mime-types");
-const MODULE_PROPERTIES_TO_INTERPOLATE = [
- { moduleType: types_1.AllModuleTypes.RovoAgent, property: 'prompt' }
-];
-class StringResourceInterpolatorError extends manifest_interpolator_1.ManifestInterpolatorError {
- constructor(message) {
- super(message);
- this.name = 'StringResourceInterpolatorError';
- }
-}
-exports.StringResourceInterpolatorError = StringResourceInterpolatorError;
-class StringResourceInterpolator {
- type = manifest_interpolator_1.InterpolatorType.STRING_RESOURCE;
- interpolate(manifest) {
- MODULE_PROPERTIES_TO_INTERPOLATE.forEach(({ moduleType, property }) => {
- const modules = manifest.modules?.[moduleType];
- modules?.forEach((module) => {
- if (module.hasOwnProperty(property)) {
- const moduleAny = module;
- const propertyValue = moduleAny[property];
- if (propertyValue.startsWith('resource:')) {
- moduleAny[property] = this.fetchContentFromResourceFile(propertyValue, manifest);
- }
- }
- });
- });
- return manifest;
- }
- fetchContentFromResourceFile(modulePropertyWithStringResource, manifest) {
- const resourcePath = this.getResourcePath(manifest, modulePropertyWithStringResource);
- try {
- return (0, fs_1.readFileSync)(resourcePath, 'utf8');
- }
- catch (error) {
- throw new StringResourceInterpolatorError(errors_1.errors.schema.errorReadingResourceFile(resourcePath, error?.message));
- }
- }
- getResourcePath(manifest, resourceString) {
- const resourceUrl = new URL(resourceString);
- const [resourceKey, relativePath] = resourceUrl.pathname.split(';');
- const resource = this.checkIfResourceIsValid(manifest, resourceKey);
- const resourcePath = `${resource.path}/${relativePath}`;
- this.checkIfResourceTypeIsSupported(resourcePath);
- return resourcePath;
- }
- checkIfResourceIsValid(manifest, resourceKey) {
- const resource = manifest.resources?.find((resource) => resource.key === resourceKey);
- if (!resource) {
- throw new StringResourceInterpolatorError(errors_1.errors.schema.resourceNotFound(resourceKey));
- }
- if (!resource.path) {
- throw new StringResourceInterpolatorError(errors_1.errors.schema.resourcePathNotDefined(resourceKey));
- }
- return resource;
- }
- checkIfResourceTypeIsSupported(resourcePath) {
- const mimeType = (0, mime_types_1.lookup)(resourcePath);
- if (!mimeType || !mimeType.startsWith('text')) {
- throw new StringResourceInterpolatorError(errors_1.errors.schema.resourceFileNotSupported(resourcePath));
- }
- }
-}
-exports.StringResourceInterpolator = StringResourceInterpolator;