@syncbridge/common 1.1.4 → 2.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/app-factory.d.ts +29 -0
- package/{processor-factory.js → app-factory.js} +64 -44
- package/app-factory.js.map +1 -0
- package/classes/{processor-base.d.ts → app-base.d.ts} +3 -3
- package/classes/app-base.js +11 -0
- package/classes/app-base.js.map +1 -0
- package/classes/base-element.d.ts +3 -0
- package/classes/base-element.js +2 -0
- package/classes/base-element.js.map +1 -1
- package/classes/component-base.d.ts +6 -6
- package/classes/component-base.js +2 -2
- package/classes/component-base.js.map +1 -1
- package/classes/log-channel-writer.d.ts +32 -0
- package/classes/log-channel-writer.js +97 -0
- package/classes/log-channel-writer.js.map +1 -0
- package/classes/runnable.d.ts +6 -0
- package/classes/runnable.js +22 -0
- package/classes/runnable.js.map +1 -1
- package/constants.d.ts +1 -1
- package/constants.js +1 -1
- package/decorators/app-events.decorator.d.ts +5 -0
- package/decorators/{processor-events.decorator.js → app-events.decorator.js} +1 -1
- package/decorators/app-events.decorator.js.map +1 -0
- package/decorators/app.decorator.d.ts +29 -0
- package/decorators/{processor.decorator.js → app.decorator.js} +25 -19
- package/decorators/app.decorator.js.map +1 -0
- package/decorators/component.decorator.js +13 -5
- package/decorators/component.decorator.js.map +1 -1
- package/decorators/define-variable.decorator.d.ts +6 -1
- package/decorators/define-variable.decorator.js +5 -1
- package/decorators/define-variable.decorator.js.map +1 -1
- package/decorators/log-channel.decorator.d.ts +97 -0
- package/decorators/log-channel.decorator.js +34 -0
- package/decorators/log-channel.decorator.js.map +1 -0
- package/decorators/use-component.decorator.d.ts +2 -2
- package/decorators/use-component.decorator.js +1 -1
- package/decorators/use-component.decorator.js.map +1 -1
- package/decorators/use-variables.decorator.d.ts +2 -2
- package/host-link/host-identity.d.ts +53 -0
- package/host-link/host-identity.js +140 -0
- package/host-link/host-identity.js.map +1 -0
- package/host-link/host-link.d.ts +43 -0
- package/host-link/host-link.js +54 -0
- package/host-link/host-link.js.map +1 -0
- package/host-link/host-packages.d.ts +25 -0
- package/host-link/host-packages.js +10 -0
- package/host-link/host-packages.js.map +1 -0
- package/host-link/host-workers.d.ts +75 -0
- package/host-link/host-workers.js +29 -0
- package/host-link/host-workers.js.map +1 -0
- package/host-link/multiplexer.d.ts +115 -0
- package/host-link/multiplexer.js +289 -0
- package/host-link/multiplexer.js.map +1 -0
- package/host-link/sealed-box.d.ts +21 -0
- package/host-link/sealed-box.js +104 -0
- package/host-link/sealed-box.js.map +1 -0
- package/index.d.ts +16 -3
- package/index.js +16 -3
- package/index.js.map +1 -1
- package/models/enums/enum-source.enum.d.ts +11 -0
- package/models/enums/enum-source.enum.js +22 -0
- package/models/enums/enum-source.enum.js.map +1 -0
- package/models/enums/log-channel-kind.d.ts +7 -0
- package/models/enums/log-channel-kind.js +14 -0
- package/models/enums/log-channel-kind.js.map +1 -0
- package/models/enums/service-status.d.ts +5 -1
- package/models/enums/service-status.js +4 -0
- package/models/enums/service-status.js.map +1 -1
- package/models/enums/worker-permission.enum.d.ts +16 -0
- package/models/enums/worker-permission.enum.js +28 -0
- package/models/enums/worker-permission.enum.js.map +1 -0
- package/models/index.d.ts +6 -1
- package/models/index.js +6 -1
- package/models/index.js.map +1 -1
- package/models/metadata/app-metadata.d.ts +6 -0
- package/models/metadata/{processor-metadata.js → app-metadata.js} +7 -7
- package/models/metadata/app-metadata.js.map +1 -0
- package/models/metadata/element-component-metadata.d.ts +2 -0
- package/models/metadata/element-component-metadata.js +10 -2
- package/models/metadata/element-component-metadata.js.map +1 -1
- package/models/metadata/element-metadata.d.ts +8 -0
- package/models/metadata/element-metadata.js +40 -0
- package/models/metadata/element-metadata.js.map +1 -1
- package/models/metadata/log-channel-metadata.d.ts +23 -0
- package/models/metadata/log-channel-metadata.js +73 -0
- package/models/metadata/log-channel-metadata.js.map +1 -0
- package/models/metadata/plugin-metadata.d.ts +15 -0
- package/models/metadata/plugin-metadata.js +66 -0
- package/models/metadata/plugin-metadata.js.map +1 -0
- package/models/metadata/variable-metadata.d.ts +3 -0
- package/models/metadata/variable-metadata.js +15 -1
- package/models/metadata/variable-metadata.js.map +1 -1
- package/models/profile/log-options.d.ts +17 -0
- package/models/profile/log-options.js +58 -1
- package/models/profile/log-options.js.map +1 -1
- package/models/profile/profile.d.ts +2 -2
- package/models/profile/profile.js +9 -9
- package/models/profile/profile.js.map +1 -1
- package/package.json +2 -2
- package/registry/docs-sidebar.d.ts +59 -0
- package/registry/docs-sidebar.js +170 -0
- package/registry/docs-sidebar.js.map +1 -0
- package/registry/extension-package.d.ts +40 -13
- package/registry/extension-package.js +59 -18
- package/registry/extension-package.js.map +1 -1
- package/registry/extension-registry.d.ts +16 -16
- package/registry/extension-registry.js +59 -44
- package/registry/extension-registry.js.map +1 -1
- package/registry/module-catalog.d.ts +31 -0
- package/registry/module-catalog.js +89 -0
- package/registry/module-catalog.js.map +1 -0
- package/registry/package-docs.d.ts +98 -0
- package/registry/package-docs.js +160 -0
- package/registry/package-docs.js.map +1 -0
- package/registry/package-manifest.d.ts +54 -3
- package/registry/package-manifest.js +59 -1
- package/registry/package-manifest.js.map +1 -1
- package/utils/decode-profile.d.ts +18 -2
- package/utils/decode-profile.js +65 -9
- package/utils/decode-profile.js.map +1 -1
- package/utils/encrypt-helpers.d.ts +7 -0
- package/utils/encrypt-helpers.js +12 -5
- package/utils/encrypt-helpers.js.map +1 -1
- package/utils/materialize-metadata.d.ts +3 -3
- package/utils/materialize-metadata.js +16 -12
- package/utils/materialize-metadata.js.map +1 -1
- package/utils/normalize-metadata.d.ts +23 -4
- package/utils/normalize-metadata.js +52 -6
- package/utils/normalize-metadata.js.map +1 -1
- package/utils/type-guards.d.ts +2 -2
- package/utils/type-guards.js +4 -4
- package/utils/type-guards.js.map +1 -1
- package/utils/worker-permissions.d.ts +25 -0
- package/utils/worker-permissions.js +60 -0
- package/utils/worker-permissions.js.map +1 -0
- package/classes/processor-base.js +0 -11
- package/classes/processor-base.js.map +0 -1
- package/decorators/processor-events.decorator.d.ts +0 -5
- package/decorators/processor-events.decorator.js.map +0 -1
- package/decorators/processor.decorator.d.ts +0 -29
- package/decorators/processor.decorator.js.map +0 -1
- package/models/metadata/processor-metadata.d.ts +0 -6
- package/models/metadata/processor-metadata.js.map +0 -1
- package/processor-factory.d.ts +0 -26
- package/processor-factory.js.map +0 -1
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { SbError } from '../classes/sb-error.js';
|
|
2
|
+
/**
|
|
3
|
+
* A package's documents: docs/ in its source, put in what spm packs, taken
|
|
4
|
+
* out of it by the registry on publish - the field reads them from the
|
|
5
|
+
* registry, never from what it installs.
|
|
6
|
+
*
|
|
7
|
+
* docs/<ClassName>/README.md an app's, component's or plugin's page
|
|
8
|
+
* docs/<ClassName>/** its documents
|
|
9
|
+
* docs/** the package's own (guides/, images/)
|
|
10
|
+
*
|
|
11
|
+
* A document is Markdown or PDF; an image is what they show. A document's
|
|
12
|
+
* languages share its name, each other than the package's own before its
|
|
13
|
+
* extension: network.md, network.tr.md, network.pt-BR.md - the one naming
|
|
14
|
+
* none in the language the manifest's `docsLanguage` names (English, if
|
|
15
|
+
* none). A document may be in another language alone (user-guide.en.pdf).
|
|
16
|
+
* How they are listed, a sidebar.json may tell (see docs-sidebar).
|
|
17
|
+
*/
|
|
18
|
+
export const DOCS_DIR = 'docs';
|
|
19
|
+
/** An app's, component's or plugin's page, in docs/<ClassName>/ */
|
|
20
|
+
export const README_FILE = 'README.md';
|
|
21
|
+
/** The language of documents that name none, when the manifest names none */
|
|
22
|
+
export const DEFAULT_DOCS_LANGUAGE = 'en';
|
|
23
|
+
/** All of a package's documents together, at most */
|
|
24
|
+
export const DOCS_MAX_TOTAL_BYTES = 50 * 1024 * 1024;
|
|
25
|
+
const KB = 1024;
|
|
26
|
+
const MB = 1024 * KB;
|
|
27
|
+
/** The files docs/ may hold, by extension: no other is packed */
|
|
28
|
+
export const DOC_TYPES = {
|
|
29
|
+
'.md': {
|
|
30
|
+
kind: 'document',
|
|
31
|
+
contentType: 'text/markdown; charset=utf-8',
|
|
32
|
+
maxBytes: 256 * KB,
|
|
33
|
+
},
|
|
34
|
+
'.pdf': {
|
|
35
|
+
kind: 'document',
|
|
36
|
+
contentType: 'application/pdf',
|
|
37
|
+
maxBytes: 20 * MB,
|
|
38
|
+
},
|
|
39
|
+
'.png': { kind: 'image', contentType: 'image/png', maxBytes: 5 * MB },
|
|
40
|
+
'.jpg': { kind: 'image', contentType: 'image/jpeg', maxBytes: 5 * MB },
|
|
41
|
+
'.jpeg': { kind: 'image', contentType: 'image/jpeg', maxBytes: 5 * MB },
|
|
42
|
+
'.gif': { kind: 'image', contentType: 'image/gif', maxBytes: 5 * MB },
|
|
43
|
+
'.webp': { kind: 'image', contentType: 'image/webp', maxBytes: 5 * MB },
|
|
44
|
+
'.svg': { kind: 'image', contentType: 'image/svg+xml', maxBytes: 5 * MB },
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* A directory in docs/ named as a class would be (UdpSocket): an app's,
|
|
48
|
+
* component's or plugin's. Others (guides, images, API) the package's own.
|
|
49
|
+
*/
|
|
50
|
+
export const CLASS_DIR_PATTERN = /^[A-Z][a-z0-9][A-Za-z0-9]*$/;
|
|
51
|
+
/** A file's or directory's name in docs/: one a link needs no escaping for */
|
|
52
|
+
const NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
53
|
+
/** A language a document is in: ISO 639-1, its region if any (pt-BR) */
|
|
54
|
+
const LANGUAGE_PATTERN = /^([a-z]{2})(?:-([A-Z]{2}))?$/;
|
|
55
|
+
/** A document's language in its name: network.tr.md, setup.pt-BR.pdf */
|
|
56
|
+
const LANGUAGE_IN_NAME = /^(.+)\.([a-z]{2}(?:-[A-Z]{2})?)(\.(?:md|pdf))$/;
|
|
57
|
+
/** ISO 639-1: the languages a document may be in */
|
|
58
|
+
const LANGUAGES = new Set(('aa ab ae af ak am an ar as av ay az ba be bg bh bi bm bn bo br bs ca ce ' +
|
|
59
|
+
'ch co cr cs cu cv cy da de dv dz ee el en eo es et eu fa ff fi fj fo fr ' +
|
|
60
|
+
'fy ga gd gl gn gu gv ha he hi ho hr ht hu hy hz ia id ie ig ii ik io is ' +
|
|
61
|
+
'it iu ja jv ka kg ki kj kk kl km kn ko kr ks ku kv kw ky la lb lg li ln ' +
|
|
62
|
+
'lo lt lu lv mg mh mi mk ml mn mr ms mt my na nb nd ne ng nl nn no nr nv ' +
|
|
63
|
+
'ny oc oj om or os pa pi pl ps pt qu rm rn ro ru rw sa sc sd se sg si sk ' +
|
|
64
|
+
'sl sm sn so sq sr ss st su sv sw ta te tg th ti tk tl tn to tr ts tt tw ' +
|
|
65
|
+
'ty ug uk ur uz ve vi vo wa wo xh yi yo za zh zu').split(' '));
|
|
66
|
+
/** Whether a document may be in this language: `tr`, `pt-BR` */
|
|
67
|
+
export function isDocsLanguage(code) {
|
|
68
|
+
if (typeof code !== 'string')
|
|
69
|
+
return false;
|
|
70
|
+
const m = LANGUAGE_PATTERN.exec(code);
|
|
71
|
+
return !!m && LANGUAGES.has(m[1]);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Reads what a file in docs/ is from its path in the package (docs/...).
|
|
75
|
+
* Throws when docs/ may not hold it: a type it does not take, a name a link
|
|
76
|
+
* would need escaping for, or no path in docs/.
|
|
77
|
+
*/
|
|
78
|
+
export function parseDocPath(file) {
|
|
79
|
+
const segments = file.split('/');
|
|
80
|
+
if (segments[0] !== DOCS_DIR || segments.length < 2)
|
|
81
|
+
throw new SbError(`${file}: not in ${DOCS_DIR}/`);
|
|
82
|
+
const names = segments.slice(1);
|
|
83
|
+
const bad = names.find(n => !NAME_PATTERN.test(n));
|
|
84
|
+
if (bad !== undefined)
|
|
85
|
+
throw new SbError(`${file}: "${bad}" is not a name docs/ takes - letters, digits, ".", "_" and "-" alone, not starting with "." "_" or "-"`);
|
|
86
|
+
const name = names[names.length - 1];
|
|
87
|
+
const dot = name.lastIndexOf('.');
|
|
88
|
+
const type = dot > 0 ? DOC_TYPES[name.slice(dot).toLowerCase()] : undefined;
|
|
89
|
+
if (!type)
|
|
90
|
+
throw new SbError(`${file}: docs/ takes ${Object.keys(DOC_TYPES).join(', ')} files alone`);
|
|
91
|
+
const module = names.length > 1 && CLASS_DIR_PATTERN.test(names[0]) ? names[0] : undefined;
|
|
92
|
+
const m = type.kind === 'document' ? LANGUAGE_IN_NAME.exec(name) : null;
|
|
93
|
+
if (m && LANGUAGES.has(m[2].slice(0, 2)))
|
|
94
|
+
return {
|
|
95
|
+
path: file,
|
|
96
|
+
type,
|
|
97
|
+
module,
|
|
98
|
+
language: m[2],
|
|
99
|
+
base: [...segments.slice(0, -1), m[1] + m[3]].join('/'),
|
|
100
|
+
};
|
|
101
|
+
return { path: file, type, module, base: file };
|
|
102
|
+
}
|
|
103
|
+
/** The first bytes each type begins with: what a file claims, checked */
|
|
104
|
+
const SIGNATURES = {
|
|
105
|
+
'application/pdf': b => ascii(b, 0, 5) === '%PDF-',
|
|
106
|
+
'image/png': b => ascii(b, 1, 4) === 'PNG' && b[0] === 0x89,
|
|
107
|
+
'image/jpeg': b => b[0] === 0xff && b[1] === 0xd8 && b[2] === 0xff,
|
|
108
|
+
'image/gif': b => ascii(b, 0, 4) === 'GIF8',
|
|
109
|
+
'image/webp': b => ascii(b, 0, 4) === 'RIFF' && ascii(b, 8, 12) === 'WEBP',
|
|
110
|
+
'image/svg+xml': b => /<svg[\s>]/.test(ascii(b, 0, Math.min(b.length, 4096))),
|
|
111
|
+
};
|
|
112
|
+
function ascii(b, start, end) {
|
|
113
|
+
return String.fromCharCode(...b.subarray(start, end));
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Whether a file's bytes are what its extension says: a PDF begins as one,
|
|
117
|
+
* an image as its type, Markdown is UTF-8 text
|
|
118
|
+
*/
|
|
119
|
+
export function isDocContent(type, content) {
|
|
120
|
+
if (type.contentType.startsWith('text/markdown')) {
|
|
121
|
+
try {
|
|
122
|
+
new TextDecoder('utf-8', { fatal: true }).decode(content);
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return SIGNATURES[type.contentType]?.(content) ?? false;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* What a publish tells of a package's documents when it leaves out the
|
|
133
|
+
* files its registry has: at the archive's root, each file of docs/ by its
|
|
134
|
+
* path, SHA-256 and size. A Markdown document is always sent - what it
|
|
135
|
+
* tells is read from it; a PDF or an image may be left out, if the
|
|
136
|
+
* package's earlier versions had it.
|
|
137
|
+
*/
|
|
138
|
+
export const DOCS_MANIFEST_FILE = 'syncbridge-docs.json';
|
|
139
|
+
/** Whether a publish may leave a file out, its registry having it */
|
|
140
|
+
export function isDocLeftOut(type) {
|
|
141
|
+
return !type.contentType.startsWith('text/markdown');
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* What a package holds, as one SHA-256: every file of its archive by its
|
|
145
|
+
* path and hash, sorted - the same however the archive was zipped, or
|
|
146
|
+
* whichever of its documents' files were left out (told by their hash).
|
|
147
|
+
* A publish is approved for it.
|
|
148
|
+
*/
|
|
149
|
+
export async function packageDigest(files) {
|
|
150
|
+
const lines = files
|
|
151
|
+
.filter(f => f.path !== DOCS_MANIFEST_FILE && !f.path.endsWith('/'))
|
|
152
|
+
.map(f => `${f.path}\t${f.sha256}\n`)
|
|
153
|
+
.sort()
|
|
154
|
+
.join('');
|
|
155
|
+
const hash = await globalThis.crypto.subtle.digest('SHA-256', new TextEncoder().encode(lines));
|
|
156
|
+
return [...new Uint8Array(hash)]
|
|
157
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
158
|
+
.join('');
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=package-docs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package-docs.js","sourceRoot":"","sources":["../../src/registry/package-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,45 @@
|
|
|
1
|
+
import type { AppMetadata, ComponentMetadata, PluginMetadata } from '../models/index.js';
|
|
2
|
+
/** The file an extension package's manifest is in, at its root */
|
|
3
|
+
export declare const MANIFEST_FILE = "syncbridge-manifest.json";
|
|
1
4
|
/**
|
|
2
|
-
*
|
|
5
|
+
* An extension package's manifest: what it brings and what it needs.
|
|
6
|
+
*
|
|
7
|
+
* Its author writes `name` and `dependencies`, in the `syncbridge` field of
|
|
8
|
+
* `package.json` or in `syncbridge-manifest.json` at the package's root -
|
|
9
|
+
* never both. `syncbuild` adds what the package brings and writes the
|
|
10
|
+
* manifest of the package it builds to `syncbridge-manifest.json` only, so
|
|
11
|
+
* an installed package's manifest is always that file.
|
|
12
|
+
*
|
|
13
|
+
* Fields SyncBridge does not know are passed over with a warning: one added
|
|
14
|
+
* later breaks neither an older SyncBridge nor an older package.
|
|
3
15
|
*/
|
|
4
16
|
export interface SyncBridgeManifest {
|
|
5
17
|
/** The name the package registers under, when it differs from `name` */
|
|
6
18
|
name?: string;
|
|
7
19
|
/** Registry packages this one depends on: registry name -> semver range */
|
|
8
20
|
dependencies?: Record<string, string>;
|
|
9
|
-
|
|
10
|
-
|
|
21
|
+
/** The apps the package brings, each with its definition */
|
|
22
|
+
apps?: ManifestEntry<AppMetadata>[];
|
|
23
|
+
/** The components the package brings, each with its definition */
|
|
24
|
+
components?: ManifestEntry<ComponentMetadata>[];
|
|
25
|
+
/** The plugins the package brings, each with its definition */
|
|
26
|
+
plugins?: ManifestEntry<PluginMetadata>[];
|
|
27
|
+
/**
|
|
28
|
+
* The language of its documents that name none (README.md, not
|
|
29
|
+
* README.tr.md): ISO 639-1, its region if any - `en` when not told
|
|
30
|
+
*/
|
|
31
|
+
docsLanguage?: string;
|
|
11
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Something a package brings: its definition, and where its class is - the
|
|
35
|
+
* module it is exported from, so a worker loads only what it runs
|
|
36
|
+
*/
|
|
37
|
+
export type ManifestEntry<T> = T & {
|
|
38
|
+
/** The name the class is exported under from its module */
|
|
39
|
+
exportName: string;
|
|
40
|
+
/** Its module, relative to the package's root: `./hl7-bridge.app.js` */
|
|
41
|
+
entryPoint: string;
|
|
42
|
+
};
|
|
12
43
|
/**
|
|
13
44
|
* The parts of an extension package's `package.json` SyncBridge reads.
|
|
14
45
|
*/
|
|
@@ -22,3 +53,23 @@ export interface ExtensionPackageJson {
|
|
|
22
53
|
peerDependencies?: Record<string, string>;
|
|
23
54
|
syncbridge?: SyncBridgeManifest;
|
|
24
55
|
}
|
|
56
|
+
/** A package's manifest as read, with where it was and what was not known */
|
|
57
|
+
export interface ReadManifest {
|
|
58
|
+
manifest: SyncBridgeManifest;
|
|
59
|
+
/** `file`: syncbridge-manifest.json; `package.json`: its syncbridge field */
|
|
60
|
+
source: 'file' | 'package.json';
|
|
61
|
+
/** Fields of the manifest SyncBridge does not know, passed over */
|
|
62
|
+
unknownFields: string[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Reads the manifest of the package in `packageDir`: its
|
|
66
|
+
* syncbridge-manifest.json, or else the `syncbridge` field of its
|
|
67
|
+
* package.json. Undefined when it has neither: it is not an extension
|
|
68
|
+
* package. Throws when it has both, as which one counts would be unclear.
|
|
69
|
+
*/
|
|
70
|
+
export declare function readExtensionManifest(packageDir: string, pkgJson?: ExtensionPackageJson): ReadManifest | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* The manifest of the package in `packageDir`, when it is an extension
|
|
73
|
+
* package (see readExtensionManifest)
|
|
74
|
+
*/
|
|
75
|
+
export declare function manifestOf(packageDir: string, pkgJson?: ExtensionPackageJson): SyncBridgeManifest | undefined;
|
|
@@ -1,2 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { SbError } from '../classes/sb-error.js';
|
|
4
|
+
/** The file an extension package's manifest is in, at its root */
|
|
5
|
+
export const MANIFEST_FILE = 'syncbridge-manifest.json';
|
|
6
|
+
/** The fields of a manifest SyncBridge knows */
|
|
7
|
+
const KNOWN_FIELDS = new Set([
|
|
8
|
+
'name',
|
|
9
|
+
'dependencies',
|
|
10
|
+
'apps',
|
|
11
|
+
'components',
|
|
12
|
+
'plugins',
|
|
13
|
+
'docsLanguage',
|
|
14
|
+
]);
|
|
15
|
+
/**
|
|
16
|
+
* Reads the manifest of the package in `packageDir`: its
|
|
17
|
+
* syncbridge-manifest.json, or else the `syncbridge` field of its
|
|
18
|
+
* package.json. Undefined when it has neither: it is not an extension
|
|
19
|
+
* package. Throws when it has both, as which one counts would be unclear.
|
|
20
|
+
*/
|
|
21
|
+
export function readExtensionManifest(packageDir, pkgJson) {
|
|
22
|
+
pkgJson =
|
|
23
|
+
pkgJson ||
|
|
24
|
+
(fs.existsSync(path.join(packageDir, 'package.json'))
|
|
25
|
+
? JSON.parse(fs.readFileSync(path.join(packageDir, 'package.json'), 'utf8'))
|
|
26
|
+
: undefined);
|
|
27
|
+
const file = path.join(packageDir, MANIFEST_FILE);
|
|
28
|
+
const inFile = fs.existsSync(file);
|
|
29
|
+
const inPackageJson = pkgJson?.syncbridge != null;
|
|
30
|
+
if (inFile && inPackageJson)
|
|
31
|
+
throw new SbError(`"${pkgJson.name}" has a manifest both in ${MANIFEST_FILE} and in the "syncbridge" field of package.json: keep one`);
|
|
32
|
+
let manifest;
|
|
33
|
+
if (inFile) {
|
|
34
|
+
try {
|
|
35
|
+
manifest = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
throw new SbError(`${file} is not valid JSON: ${e.message}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (inPackageJson)
|
|
42
|
+
manifest = pkgJson.syncbridge;
|
|
43
|
+
else
|
|
44
|
+
return;
|
|
45
|
+
if (!manifest || typeof manifest !== 'object' || Array.isArray(manifest))
|
|
46
|
+
throw new SbError(`The manifest of "${pkgJson?.name || packageDir}" must be an object`);
|
|
47
|
+
return {
|
|
48
|
+
manifest,
|
|
49
|
+
source: inFile ? 'file' : 'package.json',
|
|
50
|
+
unknownFields: Object.keys(manifest).filter(k => !KNOWN_FIELDS.has(k)),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The manifest of the package in `packageDir`, when it is an extension
|
|
55
|
+
* package (see readExtensionManifest)
|
|
56
|
+
*/
|
|
57
|
+
export function manifestOf(packageDir, pkgJson) {
|
|
58
|
+
return readExtensionManifest(packageDir, pkgJson)?.manifest;
|
|
59
|
+
}
|
|
2
60
|
//# sourceMappingURL=package-manifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manifest.js","sourceRoot":"","sources":["../../src/registry/package-manifest.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"package-manifest.js","sourceRoot":"","sources":["../../src/registry/package-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOjD,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,0BAA0B,CAAC;AA2CxD,gDAAgD;AAChD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM;IACN,cAAc;IACd,MAAM;IACN,YAAY;IACZ,SAAS;IACT,cAAc;CACf,CAAC,CAAC;AAyBH;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,OAA8B;IAE9B,OAAO;QACL,OAAO;YACP,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,KAAK,CACR,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC/D;gBACH,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC;IAClD,IAAI,MAAM,IAAI,aAAa;QACzB,MAAM,IAAI,OAAO,CACf,IAAI,OAAQ,CAAC,IAAI,4BAA4B,aAAa,0DAA0D,CACrH,CAAC;IACJ,IAAI,QAA4B,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;SAAM,IAAI,aAAa;QAAE,QAAQ,GAAG,OAAQ,CAAC,UAAW,CAAC;;QACrD,OAAO;IACZ,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtE,MAAM,IAAI,OAAO,CACf,oBAAoB,OAAO,EAAE,IAAI,IAAI,UAAU,qBAAqB,CACrE,CAAC;IACJ,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc;QACxC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,UAAkB,EAClB,OAA8B;IAE9B,OAAO,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC;AAC9D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StackExecutor } from '../classes/stack-executor.js';
|
|
2
|
-
import {
|
|
2
|
+
import { AppMetadata, Profile, VariableMetadataRecord } from '../models/index.js';
|
|
3
3
|
export interface CodecOptions {
|
|
4
4
|
setDefaultValues?: boolean;
|
|
5
5
|
cryptoSecretKey?: string;
|
|
@@ -11,7 +11,7 @@ export declare function decodeProfile(profile: Profile, options?: CodecOptions):
|
|
|
11
11
|
export declare function decodeProfileSilent(profile: Profile, options?: CodecOptions): {
|
|
12
12
|
result: true;
|
|
13
13
|
profile: Profile;
|
|
14
|
-
metadata:
|
|
14
|
+
metadata: AppMetadata;
|
|
15
15
|
issues?: StackExecutor.Issue[];
|
|
16
16
|
} | {
|
|
17
17
|
result: false;
|
|
@@ -32,3 +32,19 @@ export declare function encodeProfileSilent(profile: Profile, options?: CodecOpt
|
|
|
32
32
|
result: false;
|
|
33
33
|
issues: StackExecutor.Issue[];
|
|
34
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Decodes values by the variables that define them - checks each against
|
|
37
|
+
* its type and rules and sets the defaults - as a profile's values are.
|
|
38
|
+
* Values no variable defines are left out. Issues are located by the
|
|
39
|
+
* values' keys, below `location` when one is given.
|
|
40
|
+
*/
|
|
41
|
+
export declare function decodeValues(variables: VariableMetadataRecord, values: Record<string, any> | undefined, options?: CodecOptions & {
|
|
42
|
+
location?: string;
|
|
43
|
+
}): {
|
|
44
|
+
result: true;
|
|
45
|
+
values: Record<string, any>;
|
|
46
|
+
issues: StackExecutor.Issue[];
|
|
47
|
+
} | {
|
|
48
|
+
result: false;
|
|
49
|
+
issues: StackExecutor.Issue[];
|
|
50
|
+
};
|
package/utils/decode-profile.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isAny, isBase64, isBigint, isBoolean, isDateString, isEmail, isHex, isNumber, isString, isTime, isURL, validator, vg, } from 'valgen';
|
|
2
2
|
import { SbValidationError } from '../classes/sb-error.js';
|
|
3
3
|
import { StackExecutor } from '../classes/stack-executor.js';
|
|
4
|
-
import {
|
|
4
|
+
import { AppMetadata, ElementComponentMetadata, Profile, ProfileComponent, VariableMetadataRecord, VariableType, } from '../models/index.js';
|
|
5
5
|
import { getModelsDocument } from '../models-document.js';
|
|
6
6
|
import { secretDecryptor, secretEncryptor } from './encrypt-helpers.js';
|
|
7
7
|
import { materializeMetadataSilent } from './materialize-metadata.js';
|
|
@@ -81,7 +81,7 @@ export function encodeProfileSilent(profile, options) {
|
|
|
81
81
|
const fn = t.generateCodec('encode', { coerce: true });
|
|
82
82
|
const out = fn({
|
|
83
83
|
id: profile.id,
|
|
84
|
-
|
|
84
|
+
appUri: profile.appUri,
|
|
85
85
|
displayName: profile.displayName,
|
|
86
86
|
group: profile.group,
|
|
87
87
|
description: profile.description,
|
|
@@ -106,6 +106,8 @@ export function encodeProfileSilent(profile, options) {
|
|
|
106
106
|
* @private
|
|
107
107
|
*/
|
|
108
108
|
function _codecProcessElement(stackExecutor, codec, metadata, profile, options) {
|
|
109
|
+
if (codec === 'decode')
|
|
110
|
+
_checkLogChannels(stackExecutor, metadata, profile);
|
|
109
111
|
profile.values = profile.values || {};
|
|
110
112
|
if (metadata.variables) {
|
|
111
113
|
stackExecutor.execute('values', () => {
|
|
@@ -134,18 +136,67 @@ function _codecProcessElement(stackExecutor, codec, metadata, profile, options)
|
|
|
134
136
|
delete profile?.components;
|
|
135
137
|
}
|
|
136
138
|
/**
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
+
* Warns of an element's log channel settings that name what it does not
|
|
140
|
+
* have: a channel, or an event its channel does not write. Warnings only:
|
|
141
|
+
* a package's next version may drop either, and a worker does not stop
|
|
142
|
+
* for a log setting.
|
|
143
|
+
*/
|
|
144
|
+
function _checkLogChannels(stackExecutor, metadata, profile) {
|
|
145
|
+
const settings = profile.settings?.logs?.channels;
|
|
146
|
+
if (!settings)
|
|
147
|
+
return;
|
|
148
|
+
const at = stackExecutor.stack.join('/');
|
|
149
|
+
const warn = (location, message) => stackExecutor.issues.push({
|
|
150
|
+
message,
|
|
151
|
+
severity: 'warning',
|
|
152
|
+
location: (at ? at + '/' : '') + location,
|
|
153
|
+
});
|
|
154
|
+
for (const [name, channelSettings] of Object.entries(settings)) {
|
|
155
|
+
const where = `settings/logs/channels/${name}`;
|
|
156
|
+
const definition = metadata.logChannels?.[name];
|
|
157
|
+
if (!definition) {
|
|
158
|
+
/* The app's settings keep the worker's console, defined by none */
|
|
159
|
+
if (!(name === 'console' && !at))
|
|
160
|
+
warn(where, `"${name}" is not a log channel of this element`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
const unknown = (channelSettings?.events || []).filter(event => !definition.events?.includes(event));
|
|
164
|
+
if (unknown.length)
|
|
165
|
+
warn(`${where}/events`, `${unknown.map(e => `"${e}"`).join(', ')} ${unknown.length === 1 ? 'is not an event' : 'are not events'} of the "${name}" channel. It has: ${definition.events?.join(', ') || 'none'}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Decodes values by the variables that define them - checks each against
|
|
170
|
+
* its type and rules and sets the defaults - as a profile's values are.
|
|
171
|
+
* Values no variable defines are left out. Issues are located by the
|
|
172
|
+
* values' keys, below `location` when one is given.
|
|
139
173
|
*/
|
|
174
|
+
export function decodeValues(variables, values, options) {
|
|
175
|
+
const stackExecutor = new StackExecutor();
|
|
176
|
+
let out = {};
|
|
177
|
+
const run = () => {
|
|
178
|
+
out = _codecValues(stackExecutor, 'decode', variables, values, options);
|
|
179
|
+
};
|
|
180
|
+
if (options?.location)
|
|
181
|
+
stackExecutor.execute(options.location, run);
|
|
182
|
+
else
|
|
183
|
+
run();
|
|
184
|
+
if (stackExecutor.issues.find(i => !(i.severity === 'warning' || i.severity === 'info')))
|
|
185
|
+
return { result: false, issues: stackExecutor.issues };
|
|
186
|
+
return { result: true, values: out, issues: stackExecutor.issues };
|
|
187
|
+
}
|
|
140
188
|
function _decodeVariables(stackExecutor, codec, metadata, profile, options) {
|
|
141
189
|
if (!metadata.variables) {
|
|
142
190
|
delete profile.values;
|
|
143
191
|
return;
|
|
144
192
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
193
|
+
profile.values = _codecValues(stackExecutor, codec, metadata.variables, profile.values, options);
|
|
194
|
+
}
|
|
195
|
+
/** The values the variables define, decoded or encoded */
|
|
196
|
+
function _codecValues(stackExecutor, codec, variables, oldValues, options) {
|
|
197
|
+
const values = {};
|
|
198
|
+
const process = (defs, target, oldVals) => {
|
|
199
|
+
for (const [k, defVariable] of Object.entries(defs)) {
|
|
149
200
|
stackExecutor.execute(k, () => {
|
|
150
201
|
if (defVariable == null)
|
|
151
202
|
return;
|
|
@@ -280,6 +331,10 @@ function _decodeVariables(stackExecutor, codec, metadata, profile, options) {
|
|
|
280
331
|
valueFn = vg.pipe([valueFn, ...fns]);
|
|
281
332
|
}
|
|
282
333
|
}
|
|
334
|
+
/* A required value that is missing is told as such, not as a value
|
|
335
|
+
* of the wrong type */
|
|
336
|
+
if (defVariable.required && !hasDefault && codec === 'decode')
|
|
337
|
+
valueFn = vg.required(valueFn);
|
|
283
338
|
if (!defVariable.required && !hasDefault) {
|
|
284
339
|
valueFn = defVariable.nullable
|
|
285
340
|
? vg.nullable(valueFn)
|
|
@@ -289,6 +344,7 @@ function _decodeVariables(stackExecutor, codec, metadata, profile, options) {
|
|
|
289
344
|
});
|
|
290
345
|
}
|
|
291
346
|
};
|
|
292
|
-
process(
|
|
347
|
+
process(variables, values, oldValues);
|
|
348
|
+
return values;
|
|
293
349
|
}
|
|
294
350
|
//# sourceMappingURL=decode-profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-profile.js","sourceRoot":"","sources":["../../src/utils/decode-profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decode-profile.js","sourceRoot":"","sources":["../../src/utils/decode-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
+
/** What marks a value encrypted, before its text */
|
|
2
|
+
export declare const SECRET_PREFIX = "sbscrt::";
|
|
3
|
+
/**
|
|
4
|
+
* A secret value kept encrypted: one already so, encrypted anew (a fresh
|
|
5
|
+
* salt and IV) - its text, not its prefix, taken as encrypted
|
|
6
|
+
*/
|
|
1
7
|
export declare const secretEncryptor: (secretKey: string) => import("valgen").Validator<string, string, import("valgen").ExecutionOptions>;
|
|
8
|
+
/** A secret value read: one encrypted, its text; any other, as it is */
|
|
2
9
|
export declare const secretDecryptor: (secretKey: string) => import("valgen").Validator<string, string, import("valgen").ExecutionOptions>;
|
package/utils/encrypt-helpers.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
2
|
import { validator } from 'valgen';
|
|
3
|
+
/** What marks a value encrypted, before its text */
|
|
4
|
+
export const SECRET_PREFIX = 'sbscrt::';
|
|
5
|
+
/**
|
|
6
|
+
* A secret value kept encrypted: one already so, encrypted anew (a fresh
|
|
7
|
+
* salt and IV) - its text, not its prefix, taken as encrypted
|
|
8
|
+
*/
|
|
3
9
|
export const secretEncryptor = (secretKey) => {
|
|
4
10
|
return validator((input) => {
|
|
5
|
-
if (input.startsWith(
|
|
6
|
-
input = decryptText(input, secretKey);
|
|
11
|
+
if (input.startsWith(SECRET_PREFIX)) {
|
|
12
|
+
input = decryptText(input.substring(SECRET_PREFIX.length), secretKey);
|
|
7
13
|
}
|
|
8
|
-
return
|
|
14
|
+
return SECRET_PREFIX + encryptText(input, secretKey);
|
|
9
15
|
});
|
|
10
16
|
};
|
|
17
|
+
/** A secret value read: one encrypted, its text; any other, as it is */
|
|
11
18
|
export const secretDecryptor = (secretKey) => {
|
|
12
19
|
return validator((input) => {
|
|
13
|
-
if (input.startsWith(
|
|
14
|
-
return decryptText(input.substring(
|
|
20
|
+
if (input.startsWith(SECRET_PREFIX)) {
|
|
21
|
+
return decryptText(input.substring(SECRET_PREFIX.length), secretKey);
|
|
15
22
|
}
|
|
16
23
|
return input;
|
|
17
24
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encrypt-helpers.js","sourceRoot":"","sources":["../../src/utils/encrypt-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE;IACnD,OAAO,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"encrypt-helpers.js","sourceRoot":"","sources":["../../src/utils/encrypt-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE;IACnD,OAAO,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,aAAa,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE;IACnD,OAAO,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa,EAAE,SAAiB;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE;KACf,CAAC,CAAC;IACH,kCAAkC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,SAAiB;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1B,QAAQ,CAAC,KAAK,EAAE;KACjB,CAAC,CAAC;IACH,OAAO,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { StackExecutor } from '../classes/stack-executor.js';
|
|
2
|
-
import {
|
|
2
|
+
import { AppMetadata, Profile } from '../models/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Materializes metadata from profile.
|
|
5
5
|
*/
|
|
6
6
|
export declare function materializeMetadata(profile: Profile, options?: {
|
|
7
7
|
returnUndefinedComponentsAsAbstract?: boolean;
|
|
8
8
|
removeIgnoredVariables?: boolean;
|
|
9
|
-
}):
|
|
9
|
+
}): AppMetadata;
|
|
10
10
|
/**
|
|
11
11
|
*
|
|
12
12
|
*/
|
|
@@ -15,7 +15,7 @@ export declare function materializeMetadataSilent(profile: Profile, options?: {
|
|
|
15
15
|
removeIgnoredVariables?: boolean;
|
|
16
16
|
}): {
|
|
17
17
|
result: true;
|
|
18
|
-
metadata:
|
|
18
|
+
metadata: AppMetadata;
|
|
19
19
|
issues: StackExecutor.Issue[];
|
|
20
20
|
} | {
|
|
21
21
|
result: false;
|