/*
* This file is part of the xPack project (http://xpack.github.io).
* Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software
* for any purpose is hereby granted, under the terms of the MIT license.
*
* If a copy of the license was not distributed with this file, it can
* be obtained from https://opensource.org/license/mit.
*/
// ----------------------------------------------------------------------------
/**
* A Node.js TypeScript module with the core code for xpm and
* xpm enabled projects.
*
* @remarks
* This library groups together various classes and functions used in common
* by xpm and the Visual Studio Code extension.
*
* The main functionality is to manage actions and build configurations,
* especially those defined using Liquid templates.
*
*
The Lazy Evaluation Mechanism
*
* Actions ({@link Actions}) and build configurations
* ({@link BuildConfigurations}) implement a two-step lazy evaluation
* process to avoid unnecessary operations:
*
*
* - Name Expansion: During collection initialisation, only
* the matrix of
* options is evaluated for each template, expanding template names into
* concrete action or configuration names without processing their
* content.
* - Content Evaluation: Later, when an action or build
* configuration is actually accessed and initialised (via
*
Action.initialise()
* or BuildConfiguration.initialise()), the template
* is fully
* evaluated and Liquid substitutions are performed.
*
*
* This approach ensures that only items that are actually used incur the cost
* of template evaluation and variable substitution, significantly improving
* performance for projects with many actions or configurations.
*
* @packageDocumentation
*/
// ----------------------------------------------------------------------------
// Public entry point for the xpm-lib TypeScript library.
export * from './functions/chmod-recursively.js'
export * from './functions/filter-paths.js'
export * from './functions/is-something.js'
export * from './functions/matrix-expander.js'
export * from './functions/perform-substitutions.js'
export * from './functions/utils.js'
export * from './classes/errors.js'
export * from './classes/init-template-base.js'
export * from './classes/actions.js'
export * from './classes/build-configurations.js'
export * from './classes/combinations-generator.js'
export * from './classes/liquid-drop.js'
export * from './classes/liquid-engine.js'
export * from './classes/data-model.js'
export * from './classes/package.js'
export * from './classes/platform-detector.js'
export * from './classes/policies.js'
export * from './classes/template-expander.js'
export * from './data/substitutions-variables.js'
export * from './types/json.js'
export * from './types/xpm-init-template.js'
export * from './types/xpm.js'
// ----------------------------------------------------------------------------
// Note: liquidjs is not re-exported to avoid API Extractor conflicts.
// Consumers should import it directly: import { Liquid } from 'liquidjs'
// This ensures they use the same version as this library via peer dependencies.
// export * as liquidjs from 'liquidjs'
// ----------------------------------------------------------------------------