@contiva/sap-integration-suite-client
Version:
SAP Cloud Platform Integration API Client
154 lines (153 loc) • 9.27 kB
JavaScript
;
/**
* SAP Cloud Platform Integration API Client
*
* A complete library for interacting with SAP Cloud Integration APIs.
* Provides type-safe access to all SAP CPI API endpoints with built-in authentication handling.
*
* @packageDocumentation
* @module sap-integration-suite-client
* @example
* // Using the default client (requires environment variables)
* import { defaultClient } from 'sap-integration-suite-client';
*
* const packages = await defaultClient.integrationContent.integrationPackages.integrationPackagesList();
*
* @example
* // Creating a custom client
* import SapClient from 'sap-integration-suite-client';
*
* const client = new SapClient({
* baseUrl: 'https://tenant.sap-api.com/api/v1',
* oauthClientId: 'client-id',
* oauthClientSecret: 'client-secret',
* oauthTokenUrl: 'https://tenant.authentication.sap.hana.ondemand.com/oauth/token'
* });
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PartnerDirectoryClient = exports.B2BScenariosClient = exports.SecurityContentClient = exports.MessageStoreClient = exports.MessageProcessingLogsClient = exports.LogFilesClient = exports.IntegrationContentAdvancedClient = exports.IntegrationContentClient = exports.EnhancedLogTypes = exports.PartnerDirectoryTypes = exports.B2BScenariosTypes = exports.SecurityContentTypes = exports.MessageStoreTypes = exports.MessageProcessingLogsTypes = exports.LogFilesTypes = exports.IntegrationContentTypes = exports.buildODataFilter = exports.enhanceLogsWithDates = exports.SapDateUtils = exports.formatSapTimestampsInObject = exports.REVALIDATE_AFTER = exports.CACHE_TTL = exports.getCacheTTLConfig = exports.resetCacheTTL = exports.configureCacheTTL = exports.CacheManager = exports.SapClient = exports.defaultClient = void 0;
// Core Client and Config
const sap_client_1 = __importDefault(require("./clients/sap-client"));
exports.SapClient = sap_client_1.default;
const cache_manager_1 = require("./core/cache-manager");
Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return cache_manager_1.CacheManager; } });
const cache_config_1 = require("./core/cache-config");
Object.defineProperty(exports, "configureCacheTTL", { enumerable: true, get: function () { return cache_config_1.configureCacheTTL; } });
Object.defineProperty(exports, "resetCacheTTL", { enumerable: true, get: function () { return cache_config_1.resetCacheTTL; } });
Object.defineProperty(exports, "getCacheTTLConfig", { enumerable: true, get: function () { return cache_config_1.getCacheTTLConfig; } });
Object.defineProperty(exports, "CACHE_TTL", { enumerable: true, get: function () { return cache_config_1.CACHE_TTL; } });
Object.defineProperty(exports, "REVALIDATE_AFTER", { enumerable: true, get: function () { return cache_config_1.REVALIDATE_AFTER; } });
const integration_content_client_1 = require("./wrapper/integration-content-client");
Object.defineProperty(exports, "IntegrationContentClient", { enumerable: true, get: function () { return integration_content_client_1.IntegrationContentClient; } });
const integration_content_advanced_client_1 = require("./wrapper/custom/integration-content-advanced-client");
Object.defineProperty(exports, "IntegrationContentAdvancedClient", { enumerable: true, get: function () { return integration_content_advanced_client_1.IntegrationContentAdvancedClient; } });
const log_files_client_1 = require("./wrapper/log-files-client");
Object.defineProperty(exports, "LogFilesClient", { enumerable: true, get: function () { return log_files_client_1.LogFilesClient; } });
const message_processing_logs_client_1 = require("./wrapper/message-processing-logs-client");
Object.defineProperty(exports, "MessageProcessingLogsClient", { enumerable: true, get: function () { return message_processing_logs_client_1.MessageProcessingLogsClient; } });
const message_store_client_1 = require("./wrapper/message-store-client");
Object.defineProperty(exports, "MessageStoreClient", { enumerable: true, get: function () { return message_store_client_1.MessageStoreClient; } });
const security_content_client_1 = require("./wrapper/security-content-client");
Object.defineProperty(exports, "SecurityContentClient", { enumerable: true, get: function () { return security_content_client_1.SecurityContentClient; } });
const b2b_scenarios_client_1 = require("./wrapper/b2b-scenarios-client");
Object.defineProperty(exports, "B2BScenariosClient", { enumerable: true, get: function () { return b2b_scenarios_client_1.B2BScenariosClient; } });
const partner_directory_client_1 = require("./wrapper/partner-directory-client");
Object.defineProperty(exports, "PartnerDirectoryClient", { enumerable: true, get: function () { return partner_directory_client_1.PartnerDirectoryClient; } });
// Utilities
const date_formatter_1 = require("./utils/date-formatter");
Object.defineProperty(exports, "formatSapTimestampsInObject", { enumerable: true, get: function () { return date_formatter_1.formatSapTimestampsInObject; } });
Object.defineProperty(exports, "SapDateUtils", { enumerable: true, get: function () { return date_formatter_1.SapDateUtils; } });
const log_enhancer_1 = require("./utils/log-enhancer");
Object.defineProperty(exports, "enhanceLogsWithDates", { enumerable: true, get: function () { return log_enhancer_1.enhanceLogsWithDates; } });
const odata_filter_builder_1 = require("./utils/odata-filter-builder");
Object.defineProperty(exports, "buildODataFilter", { enumerable: true, get: function () { return odata_filter_builder_1.buildODataFilter; } });
// Types
const IntegrationContentTypes = __importStar(require("./types/sap.IntegrationContent"));
exports.IntegrationContentTypes = IntegrationContentTypes;
const LogFilesTypes = __importStar(require("./types/sap.LogFiles"));
exports.LogFilesTypes = LogFilesTypes;
const MessageProcessingLogsTypes = __importStar(require("./types/sap.MessageProcessingLogs"));
exports.MessageProcessingLogsTypes = MessageProcessingLogsTypes;
const MessageStoreTypes = __importStar(require("./types/sap.MessageStore"));
exports.MessageStoreTypes = MessageStoreTypes;
const SecurityContentTypes = __importStar(require("./types/sap.SecurityContent"));
exports.SecurityContentTypes = SecurityContentTypes;
const B2BScenariosTypes = __importStar(require("./types/sap.B2BScenarios"));
exports.B2BScenariosTypes = B2BScenariosTypes;
const PartnerDirectoryTypes = __importStar(require("./types/sap.PartnerDirectory"));
exports.PartnerDirectoryTypes = PartnerDirectoryTypes;
const EnhancedLogTypes = __importStar(require("./types/enhanced-logs"));
exports.EnhancedLogTypes = EnhancedLogTypes;
/**
* Lazy-loaded default client
* This ensures the client is only created when actually accessed,
* not at import time
*/
let _defaultClient = null;
/**
* Default client getter function
*
* This client reads configuration from environment variables:
* - SAP_BASE_URL
* - SAP_OAUTH_CLIENT_ID
* - SAP_OAUTH_CLIENT_SECRET
* - SAP_OAUTH_TOKEN_URL
*
* The client is created only when this function is called, not at import time.
*
* @returns A SapClient instance configured with environment variables
* @deprecated Consider creating your own client instance with explicit configuration
*/
function getDefaultClient() {
if (!_defaultClient) {
_defaultClient = new sap_client_1.default();
}
return _defaultClient;
}
// Create a proxy for lazy loading the default client
const defaultClientProxy = new Proxy({}, {
get: (target, prop) => {
// Create the client on first property access
const client = getDefaultClient();
return client[prop];
}
});
exports.defaultClient = defaultClientProxy;
// Export Core Client class as default
exports.default = sap_client_1.default;