@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.
Files changed (145) hide show
  1. package/app-factory.d.ts +29 -0
  2. package/{processor-factory.js → app-factory.js} +64 -44
  3. package/app-factory.js.map +1 -0
  4. package/classes/{processor-base.d.ts → app-base.d.ts} +3 -3
  5. package/classes/app-base.js +11 -0
  6. package/classes/app-base.js.map +1 -0
  7. package/classes/base-element.d.ts +3 -0
  8. package/classes/base-element.js +2 -0
  9. package/classes/base-element.js.map +1 -1
  10. package/classes/component-base.d.ts +6 -6
  11. package/classes/component-base.js +2 -2
  12. package/classes/component-base.js.map +1 -1
  13. package/classes/log-channel-writer.d.ts +32 -0
  14. package/classes/log-channel-writer.js +97 -0
  15. package/classes/log-channel-writer.js.map +1 -0
  16. package/classes/runnable.d.ts +6 -0
  17. package/classes/runnable.js +22 -0
  18. package/classes/runnable.js.map +1 -1
  19. package/constants.d.ts +1 -1
  20. package/constants.js +1 -1
  21. package/decorators/app-events.decorator.d.ts +5 -0
  22. package/decorators/{processor-events.decorator.js → app-events.decorator.js} +1 -1
  23. package/decorators/app-events.decorator.js.map +1 -0
  24. package/decorators/app.decorator.d.ts +29 -0
  25. package/decorators/{processor.decorator.js → app.decorator.js} +25 -19
  26. package/decorators/app.decorator.js.map +1 -0
  27. package/decorators/component.decorator.js +13 -5
  28. package/decorators/component.decorator.js.map +1 -1
  29. package/decorators/define-variable.decorator.d.ts +6 -1
  30. package/decorators/define-variable.decorator.js +5 -1
  31. package/decorators/define-variable.decorator.js.map +1 -1
  32. package/decorators/log-channel.decorator.d.ts +97 -0
  33. package/decorators/log-channel.decorator.js +34 -0
  34. package/decorators/log-channel.decorator.js.map +1 -0
  35. package/decorators/use-component.decorator.d.ts +2 -2
  36. package/decorators/use-component.decorator.js +1 -1
  37. package/decorators/use-component.decorator.js.map +1 -1
  38. package/decorators/use-variables.decorator.d.ts +2 -2
  39. package/host-link/host-identity.d.ts +53 -0
  40. package/host-link/host-identity.js +140 -0
  41. package/host-link/host-identity.js.map +1 -0
  42. package/host-link/host-link.d.ts +43 -0
  43. package/host-link/host-link.js +54 -0
  44. package/host-link/host-link.js.map +1 -0
  45. package/host-link/host-packages.d.ts +25 -0
  46. package/host-link/host-packages.js +10 -0
  47. package/host-link/host-packages.js.map +1 -0
  48. package/host-link/host-workers.d.ts +75 -0
  49. package/host-link/host-workers.js +29 -0
  50. package/host-link/host-workers.js.map +1 -0
  51. package/host-link/multiplexer.d.ts +115 -0
  52. package/host-link/multiplexer.js +289 -0
  53. package/host-link/multiplexer.js.map +1 -0
  54. package/host-link/sealed-box.d.ts +21 -0
  55. package/host-link/sealed-box.js +104 -0
  56. package/host-link/sealed-box.js.map +1 -0
  57. package/index.d.ts +16 -3
  58. package/index.js +16 -3
  59. package/index.js.map +1 -1
  60. package/models/enums/enum-source.enum.d.ts +11 -0
  61. package/models/enums/enum-source.enum.js +22 -0
  62. package/models/enums/enum-source.enum.js.map +1 -0
  63. package/models/enums/log-channel-kind.d.ts +7 -0
  64. package/models/enums/log-channel-kind.js +14 -0
  65. package/models/enums/log-channel-kind.js.map +1 -0
  66. package/models/enums/service-status.d.ts +5 -1
  67. package/models/enums/service-status.js +4 -0
  68. package/models/enums/service-status.js.map +1 -1
  69. package/models/enums/worker-permission.enum.d.ts +16 -0
  70. package/models/enums/worker-permission.enum.js +28 -0
  71. package/models/enums/worker-permission.enum.js.map +1 -0
  72. package/models/index.d.ts +6 -1
  73. package/models/index.js +6 -1
  74. package/models/index.js.map +1 -1
  75. package/models/metadata/app-metadata.d.ts +6 -0
  76. package/models/metadata/{processor-metadata.js → app-metadata.js} +7 -7
  77. package/models/metadata/app-metadata.js.map +1 -0
  78. package/models/metadata/element-component-metadata.d.ts +2 -0
  79. package/models/metadata/element-component-metadata.js +10 -2
  80. package/models/metadata/element-component-metadata.js.map +1 -1
  81. package/models/metadata/element-metadata.d.ts +8 -0
  82. package/models/metadata/element-metadata.js +40 -0
  83. package/models/metadata/element-metadata.js.map +1 -1
  84. package/models/metadata/log-channel-metadata.d.ts +23 -0
  85. package/models/metadata/log-channel-metadata.js +73 -0
  86. package/models/metadata/log-channel-metadata.js.map +1 -0
  87. package/models/metadata/plugin-metadata.d.ts +15 -0
  88. package/models/metadata/plugin-metadata.js +66 -0
  89. package/models/metadata/plugin-metadata.js.map +1 -0
  90. package/models/metadata/variable-metadata.d.ts +3 -0
  91. package/models/metadata/variable-metadata.js +15 -1
  92. package/models/metadata/variable-metadata.js.map +1 -1
  93. package/models/profile/log-options.d.ts +17 -0
  94. package/models/profile/log-options.js +58 -1
  95. package/models/profile/log-options.js.map +1 -1
  96. package/models/profile/profile.d.ts +2 -2
  97. package/models/profile/profile.js +9 -9
  98. package/models/profile/profile.js.map +1 -1
  99. package/package.json +2 -2
  100. package/registry/docs-sidebar.d.ts +59 -0
  101. package/registry/docs-sidebar.js +170 -0
  102. package/registry/docs-sidebar.js.map +1 -0
  103. package/registry/extension-package.d.ts +40 -13
  104. package/registry/extension-package.js +59 -18
  105. package/registry/extension-package.js.map +1 -1
  106. package/registry/extension-registry.d.ts +16 -16
  107. package/registry/extension-registry.js +59 -44
  108. package/registry/extension-registry.js.map +1 -1
  109. package/registry/module-catalog.d.ts +31 -0
  110. package/registry/module-catalog.js +89 -0
  111. package/registry/module-catalog.js.map +1 -0
  112. package/registry/package-docs.d.ts +98 -0
  113. package/registry/package-docs.js +160 -0
  114. package/registry/package-docs.js.map +1 -0
  115. package/registry/package-manifest.d.ts +54 -3
  116. package/registry/package-manifest.js +59 -1
  117. package/registry/package-manifest.js.map +1 -1
  118. package/utils/decode-profile.d.ts +18 -2
  119. package/utils/decode-profile.js +65 -9
  120. package/utils/decode-profile.js.map +1 -1
  121. package/utils/encrypt-helpers.d.ts +7 -0
  122. package/utils/encrypt-helpers.js +12 -5
  123. package/utils/encrypt-helpers.js.map +1 -1
  124. package/utils/materialize-metadata.d.ts +3 -3
  125. package/utils/materialize-metadata.js +16 -12
  126. package/utils/materialize-metadata.js.map +1 -1
  127. package/utils/normalize-metadata.d.ts +23 -4
  128. package/utils/normalize-metadata.js +52 -6
  129. package/utils/normalize-metadata.js.map +1 -1
  130. package/utils/type-guards.d.ts +2 -2
  131. package/utils/type-guards.js +4 -4
  132. package/utils/type-guards.js.map +1 -1
  133. package/utils/worker-permissions.d.ts +25 -0
  134. package/utils/worker-permissions.js +60 -0
  135. package/utils/worker-permissions.js.map +1 -0
  136. package/classes/processor-base.js +0 -11
  137. package/classes/processor-base.js.map +0 -1
  138. package/decorators/processor-events.decorator.d.ts +0 -5
  139. package/decorators/processor-events.decorator.js.map +0 -1
  140. package/decorators/processor.decorator.d.ts +0 -29
  141. package/decorators/processor.decorator.js.map +0 -1
  142. package/models/metadata/processor-metadata.d.ts +0 -6
  143. package/models/metadata/processor-metadata.js.map +0 -1
  144. package/processor-factory.d.ts +0 -26
  145. 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
- * The `syncbridge` field of an extension package's `package.json`.
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
- components?: string[];
10
- processors?: string[];
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
- export {};
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 { ProcessorMetadata, Profile } from '../models/index.js';
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: ProcessorMetadata;
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
+ };
@@ -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 { ElementComponentMetadata, ProcessorMetadata, Profile, ProfileComponent, VariableMetadataRecord, VariableType, } from '../models/index.js';
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
- processorUri: profile.processorUri,
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
- * @protected
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
- const oldValues = profile.values;
146
- profile.values = {};
147
- const process = (variables, target, oldVals) => {
148
- for (const [k, defVariable] of Object.entries(variables)) {
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(metadata.variables, profile.values, oldValues);
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>;
@@ -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('sbscrt::')) {
6
- input = decryptText(input, secretKey);
11
+ if (input.startsWith(SECRET_PREFIX)) {
12
+ input = decryptText(input.substring(SECRET_PREFIX.length), secretKey);
7
13
  }
8
- return 'sbscrt::' + encryptText(input, secretKey);
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('sbscrt::')) {
14
- return decryptText(input.substring(6), secretKey);
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,UAAU,CAAC,EAAE,CAAC;YACjC,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAE,EAAE;IACnD,OAAO,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE;QACjC,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACpD,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
+ {"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 { ProcessorMetadata, Profile } from '../models/index.js';
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
- }): ProcessorMetadata;
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: ProcessorMetadata;
18
+ metadata: AppMetadata;
19
19
  issues: StackExecutor.Issue[];
20
20
  } | {
21
21
  result: false;