@xpack/xpm-lib 3.0.0
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/LICENSE +21 -0
- package/README.md +223 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/chmod-recursive.d.ts +7 -0
- package/dist/lib/chmod-recursive.d.ts.map +1 -0
- package/dist/lib/chmod-recursive.js +81 -0
- package/dist/lib/chmod-recursive.js.map +1 -0
- package/dist/lib/errors.d.ts +11 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +26 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/functions/chmod-recursive.d.ts +7 -0
- package/dist/lib/functions/chmod-recursive.d.ts.map +1 -0
- package/dist/lib/functions/chmod-recursive.js +81 -0
- package/dist/lib/functions/chmod-recursive.js.map +1 -0
- package/dist/lib/functions/perform-substitutions.d.ts +20 -0
- package/dist/lib/functions/perform-substitutions.d.ts.map +1 -0
- package/dist/lib/functions/perform-substitutions.js +85 -0
- package/dist/lib/functions/perform-substitutions.js.map +1 -0
- package/dist/lib/functions/utils.d.ts +30 -0
- package/dist/lib/functions/utils.d.ts.map +1 -0
- package/dist/lib/functions/utils.js +70 -0
- package/dist/lib/functions/utils.js.map +1 -0
- package/dist/lib/init-template-base.d.ts +46 -0
- package/dist/lib/init-template-base.d.ts.map +1 -0
- package/dist/lib/init-template-base.js +275 -0
- package/dist/lib/init-template-base.js.map +1 -0
- package/dist/lib/liquid-actions.d.ts +32 -0
- package/dist/lib/liquid-actions.d.ts.map +1 -0
- package/dist/lib/liquid-actions.js +113 -0
- package/dist/lib/liquid-actions.js.map +1 -0
- package/dist/lib/liquid-build-configurations.d.ts +49 -0
- package/dist/lib/liquid-build-configurations.d.ts.map +1 -0
- package/dist/lib/liquid-build-configurations.js +267 -0
- package/dist/lib/liquid-build-configurations.js.map +1 -0
- package/dist/lib/liquid-drop.d.ts +13 -0
- package/dist/lib/liquid-drop.d.ts.map +1 -0
- package/dist/lib/liquid-drop.js +56 -0
- package/dist/lib/liquid-drop.js.map +1 -0
- package/dist/lib/liquid-engine.d.ts +5 -0
- package/dist/lib/liquid-engine.d.ts.map +1 -0
- package/dist/lib/liquid-engine.js +85 -0
- package/dist/lib/liquid-engine.js.map +1 -0
- package/dist/lib/liquid-package.d.ts +17 -0
- package/dist/lib/liquid-package.d.ts.map +1 -0
- package/dist/lib/liquid-package.js +70 -0
- package/dist/lib/liquid-package.js.map +1 -0
- package/dist/lib/package.d.ts +66 -0
- package/dist/lib/package.d.ts.map +1 -0
- package/dist/lib/package.js +700 -0
- package/dist/lib/package.js.map +1 -0
- package/dist/lib/perform-substitutions.d.ts +20 -0
- package/dist/lib/perform-substitutions.d.ts.map +1 -0
- package/dist/lib/perform-substitutions.js +85 -0
- package/dist/lib/perform-substitutions.js.map +1 -0
- package/dist/lib/policies.d.ts +13 -0
- package/dist/lib/policies.d.ts.map +1 -0
- package/dist/lib/policies.js +31 -0
- package/dist/lib/policies.js.map +1 -0
- package/dist/lib/substitutions-variables.d.ts +117 -0
- package/dist/lib/substitutions-variables.d.ts.map +1 -0
- package/dist/lib/substitutions-variables.js +51 -0
- package/dist/lib/substitutions-variables.js.map +1 -0
- package/dist/lib/types.d.ts +70 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +13 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils.d.ts +30 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +70 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +102 -0
- package/src/README.md +10 -0
- package/src/index.ts +35 -0
- package/src/lib/errors.ts +29 -0
- package/src/lib/functions/chmod-recursive.ts +103 -0
- package/src/lib/functions/perform-substitutions.ts +116 -0
- package/src/lib/functions/utils.ts +88 -0
- package/src/lib/init-template-base.ts +401 -0
- package/src/lib/liquid-actions.ts +179 -0
- package/src/lib/liquid-build-configurations.ts +410 -0
- package/src/lib/liquid-drop.ts +99 -0
- package/src/lib/liquid-engine.ts +135 -0
- package/src/lib/liquid-package.ts +108 -0
- package/src/lib/package.ts +946 -0
- package/src/lib/policies.ts +49 -0
- package/src/lib/substitutions-variables.ts +177 -0
- package/src/lib/types.ts +109 -0
- package/src/package.json +3 -0
- package/src/tsconfig.json +10 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the xPack project (http://xpack.github.io).
|
|
3
|
+
* Copyright (c) 2021-2026 Liviu Ionescu. All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* Permission to use, copy, modify, and/or distribute this software
|
|
6
|
+
* for any purpose is hereby granted, under the terms of the MIT license.
|
|
7
|
+
*
|
|
8
|
+
* If a copy of the license was not distributed with this file, it can
|
|
9
|
+
* be obtained from https://opensource.org/license/mit.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/* eslint max-len: [ "error", 80, { "ignoreUrls": true } ] */
|
|
13
|
+
|
|
14
|
+
// ----------------------------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
import assert from 'node:assert'
|
|
17
|
+
import * as os from 'node:os'
|
|
18
|
+
|
|
19
|
+
import { Liquid } from 'liquidjs'
|
|
20
|
+
|
|
21
|
+
import { Logger } from '@xpack/logger'
|
|
22
|
+
|
|
23
|
+
import { isJsonObject } from './functions/utils.js'
|
|
24
|
+
import {
|
|
25
|
+
xpmLiquidSubstitutionsVariablesBase,
|
|
26
|
+
XpmLiquidSubstitutionsVariables,
|
|
27
|
+
} from './substitutions-variables.js'
|
|
28
|
+
import { XpmLiquidEngine } from './liquid-engine.js'
|
|
29
|
+
import { XpmLiquidActions } from './liquid-actions.js'
|
|
30
|
+
import { XpmLiquidBuildConfigurations } from './liquid-build-configurations.js'
|
|
31
|
+
import { JsonXpmPackage } from './types.js'
|
|
32
|
+
|
|
33
|
+
// ----------------------------------------------------------------------------
|
|
34
|
+
|
|
35
|
+
export const buildFolderRelativePathPropertyName = 'buildFolderRelativePath'
|
|
36
|
+
|
|
37
|
+
// ----------------------------------------------------------------------------
|
|
38
|
+
|
|
39
|
+
export class XpmLiquidPackage {
|
|
40
|
+
// --------------------------------------------------------------------------
|
|
41
|
+
// Members.
|
|
42
|
+
|
|
43
|
+
readonly #log: Logger
|
|
44
|
+
readonly #engine: Liquid
|
|
45
|
+
readonly #jsonPackage: JsonXpmPackage
|
|
46
|
+
|
|
47
|
+
readonly topLiquidSubstitutionsVariables: XpmLiquidSubstitutionsVariables
|
|
48
|
+
|
|
49
|
+
readonly topActions: XpmLiquidActions
|
|
50
|
+
readonly buildConfigurations: XpmLiquidBuildConfigurations
|
|
51
|
+
|
|
52
|
+
// --------------------------------------------------------------------------
|
|
53
|
+
// Constructor and async initialiser.
|
|
54
|
+
|
|
55
|
+
constructor({
|
|
56
|
+
log,
|
|
57
|
+
jsonPackage,
|
|
58
|
+
}: {
|
|
59
|
+
log: Logger
|
|
60
|
+
jsonPackage: JsonXpmPackage
|
|
61
|
+
}) {
|
|
62
|
+
log.trace(`${XpmLiquidPackage.name}()`)
|
|
63
|
+
|
|
64
|
+
this.#log = log
|
|
65
|
+
this.#engine = new XpmLiquidEngine()
|
|
66
|
+
|
|
67
|
+
assert(isJsonObject(jsonPackage.xpack))
|
|
68
|
+
this.#jsonPackage = jsonPackage
|
|
69
|
+
|
|
70
|
+
// os.version() available since 12.x
|
|
71
|
+
assert(
|
|
72
|
+
typeof os.version === 'function',
|
|
73
|
+
'Mandatory os.version available only since 12.x'
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
this.topLiquidSubstitutionsVariables = {
|
|
77
|
+
...xpmLiquidSubstitutionsVariablesBase,
|
|
78
|
+
package: jsonPackage,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (isJsonObject(jsonPackage.xpack.properties)) {
|
|
82
|
+
this.topLiquidSubstitutionsVariables.properties = {
|
|
83
|
+
...jsonPackage.xpack.properties,
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Prevent adding/removing properties.
|
|
88
|
+
Object.seal(this.topLiquidSubstitutionsVariables)
|
|
89
|
+
|
|
90
|
+
// Empty actions.
|
|
91
|
+
this.topActions = new XpmLiquidActions({
|
|
92
|
+
log: this.#log,
|
|
93
|
+
engine: this.#engine,
|
|
94
|
+
substitutionsVariables: this.topLiquidSubstitutionsVariables,
|
|
95
|
+
jsonActions: this.#jsonPackage.xpack.actions,
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
// Empty build configurations.
|
|
99
|
+
this.buildConfigurations = new XpmLiquidBuildConfigurations({
|
|
100
|
+
log: this.#log,
|
|
101
|
+
engine: this.#engine,
|
|
102
|
+
substitutionsVariables: this.topLiquidSubstitutionsVariables,
|
|
103
|
+
jsonBuildConfigurations: this.#jsonPackage.xpack.buildConfigurations,
|
|
104
|
+
})
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ----------------------------------------------------------------------------
|