@milaboratories/pl-model-backend 1.1.1 → 1.1.3
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/dist/index.cjs +26 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/serde.cjs +26 -0
- package/dist/serde.cjs.map +1 -0
- package/dist/serde.d.ts +0 -1
- package/dist/serde.js +23 -0
- package/dist/serde.js.map +1 -0
- package/dist/template_data_v2.d.ts +0 -1
- package/dist/template_data_v3.d.ts +0 -1
- package/dist/template_resources_v1.cjs +123 -0
- package/dist/template_resources_v1.cjs.map +1 -0
- package/dist/template_resources_v1.d.ts +0 -1
- package/dist/template_resources_v1.js +123 -0
- package/dist/{index.mjs.map → template_resources_v1.js.map} +1 -1
- package/package.json +14 -11
- package/src/index.ts +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.mjs +0 -137
- package/dist/serde.d.ts.map +0 -1
- package/dist/template_data_v2.d.ts.map +0 -1
- package/dist/template_data_v3.d.ts.map +0 -1
- package/dist/template_resources_v1.d.ts.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var serde = require('./serde.cjs');
|
|
4
|
+
var template_resources_v1 = require('./template_resources_v1.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.parseTemplate = serde.parseTemplate;
|
|
9
|
+
exports.serializeTemplate = serde.serializeTemplate;
|
|
10
|
+
Object.defineProperty(exports, "PlTemplateLibV1", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () { return template_resources_v1.PlTemplateLibV1; }
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "PlTemplateOverrideV1", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () { return template_resources_v1.PlTemplateOverrideV1; }
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "PlTemplateSoftwareV1", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return template_resources_v1.PlTemplateSoftwareV1; }
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(exports, "PlTemplateV1", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () { return template_resources_v1.PlTemplateV1; }
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
export { parseTemplate, serializeTemplate } from './serde.js';
|
|
2
|
+
export { PlTemplateLibV1, PlTemplateOverrideV1, PlTemplateSoftwareV1, PlTemplateV1 } from './template_resources_v1.js';
|
|
2
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/serde.cjs
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_zlib = require('node:zlib');
|
|
4
|
+
var canonicalize = require('canonicalize');
|
|
5
|
+
var zod = require('zod');
|
|
6
|
+
|
|
7
|
+
const TypeSchema = zod.z.object({
|
|
8
|
+
type: zod.z.string(),
|
|
9
|
+
}).passthrough();
|
|
10
|
+
const templateArchiveEncoder = new TextEncoder();
|
|
11
|
+
const templateArchiveDecoder = new TextDecoder();
|
|
12
|
+
function parseTemplate(content) {
|
|
13
|
+
const data = TypeSchema.parse(JSON.parse(templateArchiveDecoder.decode(node_zlib.gunzipSync(content))));
|
|
14
|
+
if (data.type !== 'pl.tengo-template.v2'
|
|
15
|
+
&& data.type !== 'pl.tengo-template.v3') {
|
|
16
|
+
throw new Error('malformed template');
|
|
17
|
+
}
|
|
18
|
+
return data;
|
|
19
|
+
}
|
|
20
|
+
function serializeTemplate(data) {
|
|
21
|
+
return node_zlib.gzipSync(templateArchiveEncoder.encode(canonicalize(data)), { chunkSize: 256 * 1024, level: 9 });
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
exports.parseTemplate = parseTemplate;
|
|
25
|
+
exports.serializeTemplate = serializeTemplate;
|
|
26
|
+
//# sourceMappingURL=serde.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serde.cjs","sources":["../src/serde.ts"],"sourcesContent":["import { gunzipSync, gzipSync } from 'node:zlib';\nimport canonicalize from 'canonicalize';\nimport type { TemplateData } from './template_data_v2';\nimport type { CompiledTemplateV3 } from './template_data_v3';\nimport { z } from 'zod';\n\nconst TypeSchema = z.object({\n type: z.string(),\n}).passthrough();\n\nconst templateArchiveEncoder = new TextEncoder();\nconst templateArchiveDecoder = new TextDecoder();\n\nexport function parseTemplate(content: Uint8Array): TemplateData | CompiledTemplateV3 {\n const data = TypeSchema.parse(JSON.parse(templateArchiveDecoder.decode(gunzipSync(content))));\n if (data.type !== 'pl.tengo-template.v2'\n && data.type !== 'pl.tengo-template.v3') {\n throw new Error('malformed template');\n }\n\n return data as unknown as TemplateData | CompiledTemplateV3;\n}\n\nexport function serializeTemplate(data: TemplateData | CompiledTemplateV3): Uint8Array {\n return gzipSync(templateArchiveEncoder.encode(canonicalize(data)), { chunkSize: 256 * 1024, level: 9 });\n}\n"],"names":["z","gunzipSync","gzipSync"],"mappings":";;;;;;AAMA,MAAM,UAAU,GAAGA,KAAC,CAAC,MAAM,CAAC;AAC1B,IAAA,IAAI,EAAEA,KAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC,WAAW,EAAE;AAEhB,MAAM,sBAAsB,GAAG,IAAI,WAAW,EAAE;AAChD,MAAM,sBAAsB,GAAG,IAAI,WAAW,EAAE;AAE1C,SAAU,aAAa,CAAC,OAAmB,EAAA;IAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAACC,oBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7F,IAAA,IAAI,IAAI,CAAC,IAAI,KAAK;AACb,WAAA,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE;AACzC,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;IACvC;AAEA,IAAA,OAAO,IAAoD;AAC7D;AAEM,SAAU,iBAAiB,CAAC,IAAuC,EAAA;IACvE,OAAOC,kBAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACzG;;;;;"}
|
package/dist/serde.d.ts
CHANGED
|
@@ -2,4 +2,3 @@ import { TemplateData } from './template_data_v2';
|
|
|
2
2
|
import { CompiledTemplateV3 } from './template_data_v3';
|
|
3
3
|
export declare function parseTemplate(content: Uint8Array): TemplateData | CompiledTemplateV3;
|
|
4
4
|
export declare function serializeTemplate(data: TemplateData | CompiledTemplateV3): Uint8Array;
|
|
5
|
-
//# sourceMappingURL=serde.d.ts.map
|
package/dist/serde.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { gunzipSync, gzipSync } from 'node:zlib';
|
|
2
|
+
import canonicalize from 'canonicalize';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
const TypeSchema = z.object({
|
|
6
|
+
type: z.string(),
|
|
7
|
+
}).passthrough();
|
|
8
|
+
const templateArchiveEncoder = new TextEncoder();
|
|
9
|
+
const templateArchiveDecoder = new TextDecoder();
|
|
10
|
+
function parseTemplate(content) {
|
|
11
|
+
const data = TypeSchema.parse(JSON.parse(templateArchiveDecoder.decode(gunzipSync(content))));
|
|
12
|
+
if (data.type !== 'pl.tengo-template.v2'
|
|
13
|
+
&& data.type !== 'pl.tengo-template.v3') {
|
|
14
|
+
throw new Error('malformed template');
|
|
15
|
+
}
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
function serializeTemplate(data) {
|
|
19
|
+
return gzipSync(templateArchiveEncoder.encode(canonicalize(data)), { chunkSize: 256 * 1024, level: 9 });
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { parseTemplate, serializeTemplate };
|
|
23
|
+
//# sourceMappingURL=serde.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serde.js","sources":["../src/serde.ts"],"sourcesContent":["import { gunzipSync, gzipSync } from 'node:zlib';\nimport canonicalize from 'canonicalize';\nimport type { TemplateData } from './template_data_v2';\nimport type { CompiledTemplateV3 } from './template_data_v3';\nimport { z } from 'zod';\n\nconst TypeSchema = z.object({\n type: z.string(),\n}).passthrough();\n\nconst templateArchiveEncoder = new TextEncoder();\nconst templateArchiveDecoder = new TextDecoder();\n\nexport function parseTemplate(content: Uint8Array): TemplateData | CompiledTemplateV3 {\n const data = TypeSchema.parse(JSON.parse(templateArchiveDecoder.decode(gunzipSync(content))));\n if (data.type !== 'pl.tengo-template.v2'\n && data.type !== 'pl.tengo-template.v3') {\n throw new Error('malformed template');\n }\n\n return data as unknown as TemplateData | CompiledTemplateV3;\n}\n\nexport function serializeTemplate(data: TemplateData | CompiledTemplateV3): Uint8Array {\n return gzipSync(templateArchiveEncoder.encode(canonicalize(data)), { chunkSize: 256 * 1024, level: 9 });\n}\n"],"names":[],"mappings":";;;;AAMA,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;AAC1B,IAAA,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC,WAAW,EAAE;AAEhB,MAAM,sBAAsB,GAAG,IAAI,WAAW,EAAE;AAChD,MAAM,sBAAsB,GAAG,IAAI,WAAW,EAAE;AAE1C,SAAU,aAAa,CAAC,OAAmB,EAAA;IAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7F,IAAA,IAAI,IAAI,CAAC,IAAI,KAAK;AACb,WAAA,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE;AACzC,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;IACvC;AAEA,IAAA,OAAO,IAAoD;AAC7D;AAEM,SAAU,iBAAiB,CAAC,IAAuC,EAAA;IACvE,OAAO,QAAQ,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACzG;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var plClient = require('@milaboratories/pl-client');
|
|
4
|
+
|
|
5
|
+
exports.PlTemplateLibV1 = void 0;
|
|
6
|
+
(function (PlTemplateLibV1) {
|
|
7
|
+
PlTemplateLibV1.type = plClient.resourceType('TengoLib', '1');
|
|
8
|
+
function fromV2Data(info) {
|
|
9
|
+
return {
|
|
10
|
+
data: {
|
|
11
|
+
Name: info.name,
|
|
12
|
+
Version: info.version,
|
|
13
|
+
Code: Buffer.from(info.src, 'utf8').toString('base64'),
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
PlTemplateLibV1.fromV2Data = fromV2Data;
|
|
18
|
+
function fromV3Data(info, sourceCode) {
|
|
19
|
+
return {
|
|
20
|
+
data: {
|
|
21
|
+
Name: info.name,
|
|
22
|
+
Version: info.version,
|
|
23
|
+
Code: Buffer.from(sourceCode, 'utf8').toString('base64'),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
PlTemplateLibV1.fromV3Data = fromV3Data;
|
|
28
|
+
})(exports.PlTemplateLibV1 || (exports.PlTemplateLibV1 = {}));
|
|
29
|
+
exports.PlTemplateSoftwareV1 = void 0;
|
|
30
|
+
(function (PlTemplateSoftwareV1) {
|
|
31
|
+
PlTemplateSoftwareV1.type = plClient.resourceType('SoftwareInfo', '1');
|
|
32
|
+
PlTemplateSoftwareV1.metaNameKey = 'ctl/runner/package/name';
|
|
33
|
+
function fromV2Data(info) {
|
|
34
|
+
return {
|
|
35
|
+
data: info.src,
|
|
36
|
+
name: {
|
|
37
|
+
Name: info.name,
|
|
38
|
+
Version: info.version,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
PlTemplateSoftwareV1.fromV2Data = fromV2Data;
|
|
43
|
+
function fromV3Data(info, sourceCode) {
|
|
44
|
+
return {
|
|
45
|
+
data: sourceCode,
|
|
46
|
+
name: {
|
|
47
|
+
Name: info.name,
|
|
48
|
+
Version: info.version,
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
PlTemplateSoftwareV1.fromV3Data = fromV3Data;
|
|
53
|
+
})(exports.PlTemplateSoftwareV1 || (exports.PlTemplateSoftwareV1 = {}));
|
|
54
|
+
exports.PlTemplateV1 = void 0;
|
|
55
|
+
(function (PlTemplateV1) {
|
|
56
|
+
PlTemplateV1.type = plClient.resourceType('TengoTemplate', '1');
|
|
57
|
+
PlTemplateV1.libPrefix = 'lib';
|
|
58
|
+
PlTemplateV1.softPrefix = 'soft';
|
|
59
|
+
PlTemplateV1.tplPrefix = 'tpl';
|
|
60
|
+
function libField(ref, libId) {
|
|
61
|
+
return plClient.field(ref, `${PlTemplateV1.libPrefix}/${libId}`);
|
|
62
|
+
}
|
|
63
|
+
PlTemplateV1.libField = libField;
|
|
64
|
+
function tplField(ref, tplId) {
|
|
65
|
+
return plClient.field(ref, `${PlTemplateV1.tplPrefix}/${tplId}`);
|
|
66
|
+
}
|
|
67
|
+
PlTemplateV1.tplField = tplField;
|
|
68
|
+
function swField(ref, softwareId) {
|
|
69
|
+
return plClient.field(ref, `${PlTemplateV1.softPrefix}/${softwareId}`);
|
|
70
|
+
}
|
|
71
|
+
PlTemplateV1.swField = swField;
|
|
72
|
+
function fromV2Data(info) {
|
|
73
|
+
return {
|
|
74
|
+
data: {
|
|
75
|
+
Name: info.name,
|
|
76
|
+
Version: info.version,
|
|
77
|
+
Code: Buffer.from(info.src, 'utf8').toString('base64'),
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
PlTemplateV1.fromV2Data = fromV2Data;
|
|
82
|
+
function fromV3Data(info, sourceCode) {
|
|
83
|
+
return {
|
|
84
|
+
data: {
|
|
85
|
+
Name: info.name,
|
|
86
|
+
Version: info.version,
|
|
87
|
+
Code: Buffer.from(sourceCode, 'utf8').toString('base64'),
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
PlTemplateV1.fromV3Data = fromV3Data;
|
|
92
|
+
})(exports.PlTemplateV1 || (exports.PlTemplateV1 = {}));
|
|
93
|
+
exports.PlTemplateOverrideV1 = void 0;
|
|
94
|
+
(function (PlTemplateOverrideV1) {
|
|
95
|
+
PlTemplateOverrideV1.type = plClient.resourceType('TengoTemplateOverride', '1');
|
|
96
|
+
function tplField(ref) {
|
|
97
|
+
return plClient.field(ref, 'tpl');
|
|
98
|
+
}
|
|
99
|
+
PlTemplateOverrideV1.tplField = tplField;
|
|
100
|
+
function fromV2Data(info) {
|
|
101
|
+
if (!info.hashOverride) {
|
|
102
|
+
throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
data: {
|
|
106
|
+
OverrideUUID: info.hashOverride,
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
PlTemplateOverrideV1.fromV2Data = fromV2Data;
|
|
111
|
+
function fromV3Data(info) {
|
|
112
|
+
if (!info.hashOverride) {
|
|
113
|
+
throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
data: {
|
|
117
|
+
OverrideUUID: info.hashOverride,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
PlTemplateOverrideV1.fromV3Data = fromV3Data;
|
|
122
|
+
})(exports.PlTemplateOverrideV1 || (exports.PlTemplateOverrideV1 = {}));
|
|
123
|
+
//# sourceMappingURL=template_resources_v1.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template_resources_v1.cjs","sources":["../src/template_resources_v1.ts"],"sourcesContent":["import type { AnyFieldRef, AnyResourceRef } from '@milaboratories/pl-client';\nimport { field, resourceType } from '@milaboratories/pl-client';\nimport type * as infoV2 from './template_data_v2';\nimport type * as infoV3 from './template_data_v3';\nexport namespace PlTemplateLibV1 {\n export const type = resourceType('TengoLib', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export type Data = {\n /** i.e. @milaboratory/some-package:lib1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n /** Full source code encoded with Base64 */\n Code: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateLibData): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(info.src, 'utf8').toString('base64'),\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateLibDataV3, sourceCode: string): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(sourceCode, 'utf8').toString('base64'),\n },\n };\n }\n}\n\nexport namespace PlTemplateSoftwareV1 {\n export const type = resourceType('SoftwareInfo', '1');\n\n export type ResourceStructure = {\n data: Data;\n name: MetaName;\n };\n\n /** Raw entrypoint descriptor encoded with Base64 */\n export type Data = string;\n\n export const metaNameKey = 'ctl/runner/package/name';\n export type MetaName = {\n /** i.e. @milaboratory/some-package:sw1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateSoftwareData | infoV2.TemplateAssetData): ResourceStructure {\n return {\n data: info.src,\n name: {\n Name: info.name,\n Version: info.version,\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateSoftwareDataV3, sourceCode: string): ResourceStructure {\n return {\n data: sourceCode,\n name: {\n Name: info.name,\n Version: info.version,\n },\n };\n }\n}\n\nexport namespace PlTemplateV1 {\n export const type = resourceType('TengoTemplate', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export const libPrefix = 'lib';\n export const softPrefix = 'soft';\n export const tplPrefix = 'tpl';\n\n export function libField(ref: AnyResourceRef, libId: string): AnyFieldRef {\n return field(ref, `${libPrefix}/${libId}`);\n }\n export function tplField(ref: AnyResourceRef, tplId: string): AnyFieldRef {\n return field(ref, `${tplPrefix}/${tplId}`);\n }\n export function swField(ref: AnyResourceRef, softwareId: string): AnyFieldRef {\n return field(ref, `${softPrefix}/${softwareId}`);\n }\n\n export type Data = {\n /** i.e. @milaboratory/some-package:tpl1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n /** Full source code encoded with Base64 */\n Code: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateData): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(info.src, 'utf8').toString('base64'),\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateDataV3, sourceCode: string): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(sourceCode, 'utf8').toString('base64'),\n },\n };\n }\n}\n\nexport namespace PlTemplateOverrideV1 {\n export const type = resourceType('TengoTemplateOverride', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export function tplField(ref: AnyResourceRef): AnyFieldRef {\n return field(ref, 'tpl');\n }\n\n export type Data = {\n OverrideUUID: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateData): ResourceStructure {\n if (!info.hashOverride) {\n throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);\n }\n\n return {\n data: {\n OverrideUUID: info.hashOverride,\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateDataV3): ResourceStructure {\n if (!info.hashOverride) {\n throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);\n }\n\n return {\n data: {\n OverrideUUID: info.hashOverride,\n },\n };\n }\n}\n"],"names":["PlTemplateLibV1","resourceType","PlTemplateSoftwareV1","PlTemplateV1","field","PlTemplateOverrideV1"],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { resourceType, field } from '@milaboratories/pl-client';
|
|
2
|
+
|
|
3
|
+
var PlTemplateLibV1;
|
|
4
|
+
(function (PlTemplateLibV1) {
|
|
5
|
+
PlTemplateLibV1.type = resourceType('TengoLib', '1');
|
|
6
|
+
function fromV2Data(info) {
|
|
7
|
+
return {
|
|
8
|
+
data: {
|
|
9
|
+
Name: info.name,
|
|
10
|
+
Version: info.version,
|
|
11
|
+
Code: Buffer.from(info.src, 'utf8').toString('base64'),
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
PlTemplateLibV1.fromV2Data = fromV2Data;
|
|
16
|
+
function fromV3Data(info, sourceCode) {
|
|
17
|
+
return {
|
|
18
|
+
data: {
|
|
19
|
+
Name: info.name,
|
|
20
|
+
Version: info.version,
|
|
21
|
+
Code: Buffer.from(sourceCode, 'utf8').toString('base64'),
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
PlTemplateLibV1.fromV3Data = fromV3Data;
|
|
26
|
+
})(PlTemplateLibV1 || (PlTemplateLibV1 = {}));
|
|
27
|
+
var PlTemplateSoftwareV1;
|
|
28
|
+
(function (PlTemplateSoftwareV1) {
|
|
29
|
+
PlTemplateSoftwareV1.type = resourceType('SoftwareInfo', '1');
|
|
30
|
+
PlTemplateSoftwareV1.metaNameKey = 'ctl/runner/package/name';
|
|
31
|
+
function fromV2Data(info) {
|
|
32
|
+
return {
|
|
33
|
+
data: info.src,
|
|
34
|
+
name: {
|
|
35
|
+
Name: info.name,
|
|
36
|
+
Version: info.version,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
PlTemplateSoftwareV1.fromV2Data = fromV2Data;
|
|
41
|
+
function fromV3Data(info, sourceCode) {
|
|
42
|
+
return {
|
|
43
|
+
data: sourceCode,
|
|
44
|
+
name: {
|
|
45
|
+
Name: info.name,
|
|
46
|
+
Version: info.version,
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
PlTemplateSoftwareV1.fromV3Data = fromV3Data;
|
|
51
|
+
})(PlTemplateSoftwareV1 || (PlTemplateSoftwareV1 = {}));
|
|
52
|
+
var PlTemplateV1;
|
|
53
|
+
(function (PlTemplateV1) {
|
|
54
|
+
PlTemplateV1.type = resourceType('TengoTemplate', '1');
|
|
55
|
+
PlTemplateV1.libPrefix = 'lib';
|
|
56
|
+
PlTemplateV1.softPrefix = 'soft';
|
|
57
|
+
PlTemplateV1.tplPrefix = 'tpl';
|
|
58
|
+
function libField(ref, libId) {
|
|
59
|
+
return field(ref, `${PlTemplateV1.libPrefix}/${libId}`);
|
|
60
|
+
}
|
|
61
|
+
PlTemplateV1.libField = libField;
|
|
62
|
+
function tplField(ref, tplId) {
|
|
63
|
+
return field(ref, `${PlTemplateV1.tplPrefix}/${tplId}`);
|
|
64
|
+
}
|
|
65
|
+
PlTemplateV1.tplField = tplField;
|
|
66
|
+
function swField(ref, softwareId) {
|
|
67
|
+
return field(ref, `${PlTemplateV1.softPrefix}/${softwareId}`);
|
|
68
|
+
}
|
|
69
|
+
PlTemplateV1.swField = swField;
|
|
70
|
+
function fromV2Data(info) {
|
|
71
|
+
return {
|
|
72
|
+
data: {
|
|
73
|
+
Name: info.name,
|
|
74
|
+
Version: info.version,
|
|
75
|
+
Code: Buffer.from(info.src, 'utf8').toString('base64'),
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
PlTemplateV1.fromV2Data = fromV2Data;
|
|
80
|
+
function fromV3Data(info, sourceCode) {
|
|
81
|
+
return {
|
|
82
|
+
data: {
|
|
83
|
+
Name: info.name,
|
|
84
|
+
Version: info.version,
|
|
85
|
+
Code: Buffer.from(sourceCode, 'utf8').toString('base64'),
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
PlTemplateV1.fromV3Data = fromV3Data;
|
|
90
|
+
})(PlTemplateV1 || (PlTemplateV1 = {}));
|
|
91
|
+
var PlTemplateOverrideV1;
|
|
92
|
+
(function (PlTemplateOverrideV1) {
|
|
93
|
+
PlTemplateOverrideV1.type = resourceType('TengoTemplateOverride', '1');
|
|
94
|
+
function tplField(ref) {
|
|
95
|
+
return field(ref, 'tpl');
|
|
96
|
+
}
|
|
97
|
+
PlTemplateOverrideV1.tplField = tplField;
|
|
98
|
+
function fromV2Data(info) {
|
|
99
|
+
if (!info.hashOverride) {
|
|
100
|
+
throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
data: {
|
|
104
|
+
OverrideUUID: info.hashOverride,
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
PlTemplateOverrideV1.fromV2Data = fromV2Data;
|
|
109
|
+
function fromV3Data(info) {
|
|
110
|
+
if (!info.hashOverride) {
|
|
111
|
+
throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
data: {
|
|
115
|
+
OverrideUUID: info.hashOverride,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
PlTemplateOverrideV1.fromV3Data = fromV3Data;
|
|
120
|
+
})(PlTemplateOverrideV1 || (PlTemplateOverrideV1 = {}));
|
|
121
|
+
|
|
122
|
+
export { PlTemplateLibV1, PlTemplateOverrideV1, PlTemplateSoftwareV1, PlTemplateV1 };
|
|
123
|
+
//# sourceMappingURL=template_resources_v1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
1
|
+
{"version":3,"file":"template_resources_v1.js","sources":["../src/template_resources_v1.ts"],"sourcesContent":["import type { AnyFieldRef, AnyResourceRef } from '@milaboratories/pl-client';\nimport { field, resourceType } from '@milaboratories/pl-client';\nimport type * as infoV2 from './template_data_v2';\nimport type * as infoV3 from './template_data_v3';\nexport namespace PlTemplateLibV1 {\n export const type = resourceType('TengoLib', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export type Data = {\n /** i.e. @milaboratory/some-package:lib1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n /** Full source code encoded with Base64 */\n Code: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateLibData): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(info.src, 'utf8').toString('base64'),\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateLibDataV3, sourceCode: string): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(sourceCode, 'utf8').toString('base64'),\n },\n };\n }\n}\n\nexport namespace PlTemplateSoftwareV1 {\n export const type = resourceType('SoftwareInfo', '1');\n\n export type ResourceStructure = {\n data: Data;\n name: MetaName;\n };\n\n /** Raw entrypoint descriptor encoded with Base64 */\n export type Data = string;\n\n export const metaNameKey = 'ctl/runner/package/name';\n export type MetaName = {\n /** i.e. @milaboratory/some-package:sw1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateSoftwareData | infoV2.TemplateAssetData): ResourceStructure {\n return {\n data: info.src,\n name: {\n Name: info.name,\n Version: info.version,\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateSoftwareDataV3, sourceCode: string): ResourceStructure {\n return {\n data: sourceCode,\n name: {\n Name: info.name,\n Version: info.version,\n },\n };\n }\n}\n\nexport namespace PlTemplateV1 {\n export const type = resourceType('TengoTemplate', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export const libPrefix = 'lib';\n export const softPrefix = 'soft';\n export const tplPrefix = 'tpl';\n\n export function libField(ref: AnyResourceRef, libId: string): AnyFieldRef {\n return field(ref, `${libPrefix}/${libId}`);\n }\n export function tplField(ref: AnyResourceRef, tplId: string): AnyFieldRef {\n return field(ref, `${tplPrefix}/${tplId}`);\n }\n export function swField(ref: AnyResourceRef, softwareId: string): AnyFieldRef {\n return field(ref, `${softPrefix}/${softwareId}`);\n }\n\n export type Data = {\n /** i.e. @milaboratory/some-package:tpl1 */\n Name: string;\n /** i.e. 1.2.3 */\n Version: string;\n /** Full source code encoded with Base64 */\n Code: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateData): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(info.src, 'utf8').toString('base64'),\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateDataV3, sourceCode: string): ResourceStructure {\n return {\n data: {\n Name: info.name,\n Version: info.version,\n Code: Buffer.from(sourceCode, 'utf8').toString('base64'),\n },\n };\n }\n}\n\nexport namespace PlTemplateOverrideV1 {\n export const type = resourceType('TengoTemplateOverride', '1');\n\n export type ResourceStructure = {\n data: Data;\n };\n\n export function tplField(ref: AnyResourceRef): AnyFieldRef {\n return field(ref, 'tpl');\n }\n\n export type Data = {\n OverrideUUID: string;\n };\n\n export function fromV2Data(info: infoV2.TemplateData): ResourceStructure {\n if (!info.hashOverride) {\n throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);\n }\n\n return {\n data: {\n OverrideUUID: info.hashOverride,\n },\n };\n }\n\n export function fromV3Data(info: infoV3.TemplateDataV3): ResourceStructure {\n if (!info.hashOverride) {\n throw new Error(`template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data`);\n }\n\n return {\n data: {\n OverrideUUID: info.hashOverride,\n },\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-model-backend",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"description": "Backend model for Platforma.bio",
|
|
5
6
|
"types": "./dist/index.d.ts",
|
|
6
|
-
"main": "./dist/index.
|
|
7
|
-
"module": "./dist/index.
|
|
7
|
+
"main": "./dist/index.cjs",
|
|
8
|
+
"module": "./dist/index.js",
|
|
8
9
|
"exports": {
|
|
9
10
|
".": {
|
|
10
11
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.
|
|
12
|
-
"require": "./dist/index.
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
13
14
|
}
|
|
14
15
|
},
|
|
15
16
|
"files": [
|
|
@@ -23,14 +24,16 @@
|
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
26
|
"@types/node": "~20.16.15",
|
|
26
|
-
"typescript": "~5.
|
|
27
|
-
"
|
|
28
|
-
"@milaboratories/build-configs": "1.0.
|
|
29
|
-
"@milaboratories/
|
|
27
|
+
"typescript": "~5.6.3",
|
|
28
|
+
"@milaboratories/eslint-config": "^1.0.4",
|
|
29
|
+
"@milaboratories/build-configs": "1.0.6",
|
|
30
|
+
"@milaboratories/ts-builder": "1.0.1",
|
|
31
|
+
"@milaboratories/ts-configs": "1.0.6"
|
|
30
32
|
},
|
|
31
33
|
"scripts": {
|
|
32
|
-
"type-check": "
|
|
33
|
-
"build": "
|
|
34
|
+
"type-check": "ts-builder types --target node",
|
|
35
|
+
"build": "ts-builder build --target node",
|
|
36
|
+
"watch": "ts-builder build --target node --watch",
|
|
34
37
|
"lint": "eslint .",
|
|
35
38
|
"do-pack": "rm -f *.tgz && pnpm pack && mv *.tgz package.tgz"
|
|
36
39
|
}
|
package/src/index.ts
CHANGED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
|
package/dist/index.mjs
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import { gunzipSync as h, gzipSync as D } from "node:zlib";
|
|
2
|
-
import l from "canonicalize";
|
|
3
|
-
import { z as u } from "zod";
|
|
4
|
-
import { resourceType as m, field as f } from "@milaboratories/pl-client";
|
|
5
|
-
const g = u.object({
|
|
6
|
-
type: u.string()
|
|
7
|
-
}).passthrough(), y = new TextEncoder(), b = new TextDecoder();
|
|
8
|
-
function F(e) {
|
|
9
|
-
const n = g.parse(JSON.parse(b.decode(h(e))));
|
|
10
|
-
if (n.type !== "pl.tengo-template.v2" && n.type !== "pl.tengo-template.v3")
|
|
11
|
-
throw new Error("malformed template");
|
|
12
|
-
return n;
|
|
13
|
-
}
|
|
14
|
-
function N(e) {
|
|
15
|
-
return D(y.encode(l(e)), { chunkSize: 256 * 1024, level: 9 });
|
|
16
|
-
}
|
|
17
|
-
var s;
|
|
18
|
-
((e) => {
|
|
19
|
-
e.type = m("TengoLib", "1");
|
|
20
|
-
function n(r) {
|
|
21
|
-
return {
|
|
22
|
-
data: {
|
|
23
|
-
Name: r.name,
|
|
24
|
-
Version: r.version,
|
|
25
|
-
Code: Buffer.from(r.src, "utf8").toString("base64")
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
e.fromV2Data = n;
|
|
30
|
-
function o(r, t) {
|
|
31
|
-
return {
|
|
32
|
-
data: {
|
|
33
|
-
Name: r.name,
|
|
34
|
-
Version: r.version,
|
|
35
|
-
Code: Buffer.from(t, "utf8").toString("base64")
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
e.fromV3Data = o;
|
|
40
|
-
})(s || (s = {}));
|
|
41
|
-
var c;
|
|
42
|
-
((e) => {
|
|
43
|
-
e.type = m("SoftwareInfo", "1"), e.metaNameKey = "ctl/runner/package/name";
|
|
44
|
-
function n(r) {
|
|
45
|
-
return {
|
|
46
|
-
data: r.src,
|
|
47
|
-
name: {
|
|
48
|
-
Name: r.name,
|
|
49
|
-
Version: r.version
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
e.fromV2Data = n;
|
|
54
|
-
function o(r, t) {
|
|
55
|
-
return {
|
|
56
|
-
data: t,
|
|
57
|
-
name: {
|
|
58
|
-
Name: r.name,
|
|
59
|
-
Version: r.version
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
e.fromV3Data = o;
|
|
64
|
-
})(c || (c = {}));
|
|
65
|
-
var d;
|
|
66
|
-
((e) => {
|
|
67
|
-
e.type = m("TengoTemplate", "1"), e.libPrefix = "lib", e.softPrefix = "soft", e.tplPrefix = "tpl";
|
|
68
|
-
function n(a, i) {
|
|
69
|
-
return f(a, `${e.libPrefix}/${i}`);
|
|
70
|
-
}
|
|
71
|
-
e.libField = n;
|
|
72
|
-
function o(a, i) {
|
|
73
|
-
return f(a, `${e.tplPrefix}/${i}`);
|
|
74
|
-
}
|
|
75
|
-
e.tplField = o;
|
|
76
|
-
function r(a, i) {
|
|
77
|
-
return f(a, `${e.softPrefix}/${i}`);
|
|
78
|
-
}
|
|
79
|
-
e.swField = r;
|
|
80
|
-
function t(a) {
|
|
81
|
-
return {
|
|
82
|
-
data: {
|
|
83
|
-
Name: a.name,
|
|
84
|
-
Version: a.version,
|
|
85
|
-
Code: Buffer.from(a.src, "utf8").toString("base64")
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
e.fromV2Data = t;
|
|
90
|
-
function v(a, i) {
|
|
91
|
-
return {
|
|
92
|
-
data: {
|
|
93
|
-
Name: a.name,
|
|
94
|
-
Version: a.version,
|
|
95
|
-
Code: Buffer.from(i, "utf8").toString("base64")
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
e.fromV3Data = v;
|
|
100
|
-
})(d || (d = {}));
|
|
101
|
-
var p;
|
|
102
|
-
((e) => {
|
|
103
|
-
e.type = m("TengoTemplateOverride", "1");
|
|
104
|
-
function n(t) {
|
|
105
|
-
return f(t, "tpl");
|
|
106
|
-
}
|
|
107
|
-
e.tplField = n;
|
|
108
|
-
function o(t) {
|
|
109
|
-
if (!t.hashOverride)
|
|
110
|
-
throw new Error("template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data");
|
|
111
|
-
return {
|
|
112
|
-
data: {
|
|
113
|
-
OverrideUUID: t.hashOverride
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
e.fromV2Data = o;
|
|
118
|
-
function r(t) {
|
|
119
|
-
if (!t.hashOverride)
|
|
120
|
-
throw new Error("template tree rendering error: template has no hash override, cannot generate PlTemplateOverrideV1.ResourceStructure from template data");
|
|
121
|
-
return {
|
|
122
|
-
data: {
|
|
123
|
-
OverrideUUID: t.hashOverride
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
e.fromV3Data = r;
|
|
128
|
-
})(p || (p = {}));
|
|
129
|
-
export {
|
|
130
|
-
s as PlTemplateLibV1,
|
|
131
|
-
p as PlTemplateOverrideV1,
|
|
132
|
-
c as PlTemplateSoftwareV1,
|
|
133
|
-
d as PlTemplateV1,
|
|
134
|
-
F as parseTemplate,
|
|
135
|
-
N as serializeTemplate
|
|
136
|
-
};
|
|
137
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/serde.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"serde.d.ts","sourceRoot":"","sources":["../src/serde.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAU7D,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY,GAAG,kBAAkB,CAQpF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,kBAAkB,GAAG,UAAU,CAErF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template_data_v2.d.ts","sourceRoot":"","sources":["../src/template_data_v2.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAE7B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACxC,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC/C,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template_data_v3.d.ts","sourceRoot":"","sources":["../src/template_data_v3.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACxC,uFAAuF;IACvF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjD,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,IAAI,EAAE,sBAAsB,CAAC;IAE7B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC,QAAQ,EAAE,cAAc,CAAC;CAC1B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"template_resources_v1.d.ts","sourceRoot":"","sources":["../src/template_resources_v1.ts"],"names":[],"mappings":"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"}
|