@balena/contrato 0.8.0 → 0.9.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/build/partials.d.ts +1 -1
- package/build/partials.js +18 -19
- package/build/partials.js.map +1 -1
- package/package.json +9 -4
package/build/partials.d.ts
CHANGED
package/build/partials.js
CHANGED
|
@@ -31,10 +31,9 @@ const debug_1 = __importDefault(require("debug"));
|
|
|
31
31
|
const fs = __importStar(require("fs"));
|
|
32
32
|
const path_1 = __importDefault(require("path"));
|
|
33
33
|
const handlebars_1 = __importDefault(require("handlebars"));
|
|
34
|
-
const
|
|
34
|
+
const handlebars_async_helpers_1 = __importDefault(require("handlebars-async-helpers"));
|
|
35
35
|
const first_1 = __importDefault(require("lodash/first"));
|
|
36
36
|
const invokeMap_1 = __importDefault(require("lodash/invokeMap"));
|
|
37
|
-
const isError_1 = __importDefault(require("lodash/isError"));
|
|
38
37
|
const join_1 = __importDefault(require("lodash/join"));
|
|
39
38
|
const last_1 = __importDefault(require("lodash/last"));
|
|
40
39
|
const map_1 = __importDefault(require("lodash/map"));
|
|
@@ -50,6 +49,7 @@ const uniq_1 = __importDefault(require("lodash/uniq"));
|
|
|
50
49
|
const flow_1 = __importDefault(require("lodash/flow"));
|
|
51
50
|
const contract_1 = __importDefault(require("./contract"));
|
|
52
51
|
const utils_1 = require("./utils");
|
|
52
|
+
const hb = (0, handlebars_async_helpers_1.default)(handlebars_1.default);
|
|
53
53
|
const debug = (0, debug_1.default)('partials');
|
|
54
54
|
const REFERENCE_DELIMITER = '+';
|
|
55
55
|
const findPartial = (name, context, options) => {
|
|
@@ -85,34 +85,33 @@ const findPartial = (name, context, options) => {
|
|
|
85
85
|
}), uniq_1.default)(options.structure);
|
|
86
86
|
};
|
|
87
87
|
exports.findPartial = findPartial;
|
|
88
|
-
|
|
88
|
+
hb.registerHelper('import', async (options) => {
|
|
89
89
|
const settings = options.data.root.settings;
|
|
90
90
|
const partialPaths = (0, exports.findPartial)(options.hash.partial, settings.context, {
|
|
91
91
|
baseDirectory: path_1.default.join(settings.directory, options.hash.combination),
|
|
92
92
|
structure: (0, map_1.default)((0, split_1.default)(options.hash.combination, REFERENCE_DELIMITER), trim_1.default),
|
|
93
93
|
});
|
|
94
94
|
for (const partialPath of partialPaths) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
95
|
+
try {
|
|
96
|
+
const partialContent = await fs.promises.readFile(partialPath, {
|
|
97
|
+
encoding: 'utf8',
|
|
98
|
+
});
|
|
99
|
+
debug(`Using ${partialPath}`);
|
|
100
|
+
const safeContent = new hb.SafeString(partialContent.slice(0, partialContent.length - 1));
|
|
101
|
+
const builtContent = await hb.compile(safeContent.toString())(options.data.root);
|
|
102
|
+
return new hb.SafeString(builtContent);
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
if (err.code === 'ENOENT') {
|
|
100
106
|
debug(`Ignoring ${partialPath}`);
|
|
101
107
|
continue;
|
|
102
108
|
}
|
|
103
|
-
throw
|
|
104
|
-
}
|
|
105
|
-
else if (partialContent instanceof Buffer) {
|
|
106
|
-
throw new Error(`Error reading file: ${partialPath}`);
|
|
109
|
+
throw err;
|
|
107
110
|
}
|
|
108
|
-
debug(`Using ${partialPath}`);
|
|
109
|
-
const safeContent = new handlebars_1.default.SafeString(partialContent.slice(0, partialContent.length - 1));
|
|
110
|
-
const builtContent = handlebars_1.default.compile(safeContent.toString())(options.data.root);
|
|
111
|
-
return new handlebars_1.default.SafeString(builtContent);
|
|
112
111
|
}
|
|
113
112
|
throw new Error(`Partial not found: ${options.hash.partial}`);
|
|
114
113
|
});
|
|
115
|
-
|
|
114
|
+
hb.registerHelper({
|
|
116
115
|
eq: (v1, v2) => v1 === v2,
|
|
117
116
|
ne: (v1, v2) => v1 !== v2,
|
|
118
117
|
lt: (v1, v2) => v1 < v2,
|
|
@@ -122,14 +121,14 @@ handlebars_1.default.registerHelper({
|
|
|
122
121
|
and: (...rest) => rest.every(Boolean),
|
|
123
122
|
or: (...rest) => rest.slice(0, -1).some(Boolean),
|
|
124
123
|
});
|
|
125
|
-
const buildTemplate = (template, context, options) => {
|
|
124
|
+
const buildTemplate = async (template, context, options) => {
|
|
126
125
|
const data = (0, merge_1.default)({
|
|
127
126
|
settings: {
|
|
128
127
|
directory: options.directory,
|
|
129
128
|
context,
|
|
130
129
|
},
|
|
131
130
|
}, context.toJSON().children);
|
|
132
|
-
return (0, utils_1.stripExtraBlankLines)(
|
|
131
|
+
return (0, utils_1.stripExtraBlankLines)(await hb.compile(template)(data));
|
|
133
132
|
};
|
|
134
133
|
exports.buildTemplate = buildTemplate;
|
|
135
134
|
//# sourceMappingURL=partials.js.map
|
package/build/partials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partials.js","sourceRoot":"","sources":["../lib/partials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,kDAA0B;AAC1B,uCAAyB;AACzB,gDAAwB;AACxB,4DAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"partials.js","sourceRoot":"","sources":["../lib/partials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,kDAA0B;AAC1B,uCAAyB;AACzB,gDAAwB;AACxB,4DAAoC;AACpC,wFAAoD;AACpD,yDAAiC;AACjC,iEAAyC;AACzC,uDAA+B;AAC/B,uDAA+B;AAC/B,qDAA6B;AAC7B,yDAAiC;AACjC,yDAAiC;AACjC,2DAAmC;AACnC,2DAAmC;AACnC,yDAAiC;AACjC,uDAA+B;AAC/B,uDAA+B;AAC/B,uDAA+B;AAC/B,uDAA+B;AAE/B,uDAA+B;AAE/B,0DAAkC;AAElC,mCAAqE;AAErE,MAAM,EAAE,GAAG,IAAA,kCAAY,EAAC,oBAAU,CAAC,CAAC;AAEpC,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,UAAU,CAAC,CAAC;AAOhC,MAAM,mBAAmB,GAAW,GAAG,CAAC;AA6BjC,MAAM,WAAW,GAAG,CAC1B,IAAY,EACZ,OAAiB,EACjB,OAAuD,EAC5C,EAAE;IACb,OAAO,IAAA,cAAI,EACV,CAAC,SAAmB,EAAE,EAAE,CACvB,IAAA,aAAG,EAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAe,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAA,cAAI,EACrB,CAAC,WAAuB,EAAE,EAAE,CAC3B,IAAA,aAAG,EAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE;YAG7B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC/C,OAAO,IAAI,kBAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,CAAC,EACH,CAAC,iBAA6B,EAAE,EAAE,CACjC,IAAA,gBAAM,EAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAC5D,CAAC,QAAQ,CAAC,CAAC;QAEZ,OAAO;YACN,IAAA,cAAI,EAAC,IAAA,mBAAS,EAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;YACrE,IAAA,cAAI,EAAC,IAAA,mBAAS,EAAC,SAAS,EAAE,SAAS,CAAC,EAAE,mBAAmB,CAAC;SAC1D,CAAC;IACH,CAAC,CAAC,EACH,CAAC,mBAA+B,EAAE,EAAE,CACnC,IAAA,cAAI,EAAC,mBAAmB,EAAE,CAAC,YAAY,EAAE,EAAE;QAC1C,MAAM,QAAQ,GAAG;YAChB,GAAG,IAAA,4BAAoB,EACtB,YAAY,EACZ,CAAC,WAAqB,EAAE,OAAe,EAAE,EAAE;gBAC1C,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,OAAO,WAAW,CAAC;YACpB,CAAC,EACD,CAAC,EAAE,CAAC,CACJ;SACD,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,gBAAM,EACpB,IAAA,eAAK,EAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EACtC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CACtB,WAAW,CAAC,MAAM,CAAC,IAAA,mBAAS,EAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAC3D,EAAgB,CAChB,CAAC;QAEF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CACxC,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CACrC,IAAA,aAAG,EAAC,CAAC,IAAA,aAAG,EAAC,UAAU,EAAE,eAAK,CAAC,EAAE,IAAA,aAAG,EAAC,UAAU,EAAE,cAAI,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7D,IAAA,cAAI,EAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CACrB,CAAC,MAAM,CAAC,WAAW,CAAC,EACtB,EAAsC,CACtC,CAAC;QAEF,OAAQ,QAA6C;aACnD,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,aAAa,CAAC,CAAC;IACzB,CAAC,CAAC;SACA,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAA,cAAI,EAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;SAClE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACd,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3D,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC;IAC5C,CAAC,CAAC,EACJ,cAAI,CACJ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACtB,CAAC,CAAC;AAnEW,QAAA,WAAW,eAmEtB;AAEF,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAE5C,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;QACxE,aAAa,EAAE,cAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;QACtE,SAAS,EAAE,IAAA,aAAG,EAAC,IAAA,eAAK,EAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,EAAE,cAAI,CAAC;KAC1E,CAAC,CAAC;IAEH,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACvC,IAAI;YACH,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC9D,QAAQ,EAAE,MAAM;aAChB,CAAC,CAAC;YAEH,KAAK,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;YAK9B,MAAM,WAAW,GAAG,IAAI,EAAE,CAAC,UAAU,CACpC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAClD,CAAC;YACF,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAC5D,OAAO,CAAC,IAAI,CAAC,IAAI,CACjB,CAAC;YACF,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;SACvC;QAAC,OAAO,GAAG,EAAE;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACrD,KAAK,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;gBACjC,SAAS;aACT;YAED,MAAM,GAAG,CAAC;SACV;KACD;IAED,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAgBH,EAAE,CAAC,cAAc,CAAC;IACjB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;IACzB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE;IACzB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACvB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;IACvB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;IACzB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE;IACzB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IACrC,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;CAChD,CAAC,CAAC;AA0BI,MAAM,aAAa,GAAG,KAAK,EACjC,QAAgB,EAChB,OAAuB,EACvB,OAA8B,EACZ,EAAE;IACpB,MAAM,IAAI,GAAG,IAAA,eAAK,EACjB;QACC,QAAQ,EAAE;YACT,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,OAAO;SACP;KACD,EACD,OAAO,CAAC,MAAM,EAAE,CAAC,QAAQ,CACzB,CAAC;IAEF,OAAO,IAAA,4BAAoB,EAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@balena/contrato",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "The official contract implementation",
|
|
5
5
|
"homepage": "https://github.com/product-os/contrato",
|
|
6
6
|
"main": "build/index.js",
|
|
@@ -24,11 +24,11 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"clean": "rimraf build",
|
|
26
26
|
"build": "npm run clean && npm run buildtypes && tsc",
|
|
27
|
-
"buildtypes": "ts-node ./scripts/build-types.ts && balena-lint --typescript --fix lib/types",
|
|
27
|
+
"buildtypes": "ts-node --transpile-only ./scripts/build-types.ts && balena-lint --typescript --fix lib/types",
|
|
28
28
|
"doc": "typedoc --options ./typedoc.json",
|
|
29
29
|
"lint": "balena-lint --typescript lib tests scripts",
|
|
30
30
|
"lint-fix": "balena-lint --typescript --fix lib tests scripts",
|
|
31
|
-
"test:node": "mocha -r ts-node/register --reporter spec tests/**/*.spec.ts",
|
|
31
|
+
"test:node": "mocha -r ts-node/register/transpile-only --reporter spec tests/**/*.spec.ts",
|
|
32
32
|
"test": "npm run build && npm run lint && npm run test:node",
|
|
33
33
|
"test:fast": "npm run build && npm run test:node",
|
|
34
34
|
"prepack": "npm run build"
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"@types/semver": "^7.3.5",
|
|
43
43
|
"debug": "^3.2.6",
|
|
44
44
|
"handlebars": "^4.7.6",
|
|
45
|
+
"handlebars-async-helpers": "^1.0.5",
|
|
45
46
|
"js-combinatorics": "^0.5.5",
|
|
46
47
|
"lodash": "^4.17.19",
|
|
47
48
|
"object-hash": "^1.3.1",
|
|
@@ -65,7 +66,11 @@
|
|
|
65
66
|
"typedoc": "^0.23.28",
|
|
66
67
|
"typescript": "^4.9.5"
|
|
67
68
|
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": "^18.14.0",
|
|
71
|
+
"npm": "^9.4.1"
|
|
72
|
+
},
|
|
68
73
|
"versionist": {
|
|
69
|
-
"publishedAt": "2023-
|
|
74
|
+
"publishedAt": "2023-04-03T21:58:18.864Z"
|
|
70
75
|
}
|
|
71
76
|
}
|