@lwc/metadata 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +21 -0
- package/dist/__tests__/bundle-metadata.spec.d.ts +1 -0
- package/dist/bundle-metadata.d.ts +3 -0
- package/dist/bundle-metadata.js +119 -0
- package/dist/bundle-metadata.js.map +1 -0
- package/dist/dependency-analyzer/__tests__/komaci-script-docs.fixtures.spec.d.ts +1 -0
- package/dist/dependency-analyzer/__tests__/komaci-template-docs.fixtures.spec.d.ts +1 -0
- package/dist/dependency-analyzer/analyzeScriptFile.d.ts +4 -0
- package/dist/dependency-analyzer/analyzeScriptFile.js +465 -0
- package/dist/dependency-analyzer/analyzeScriptFile.js.map +1 -0
- package/dist/dependency-analyzer/analyzeTemplateFile.d.ts +3 -0
- package/dist/dependency-analyzer/analyzeTemplateFile.js +364 -0
- package/dist/dependency-analyzer/analyzeTemplateFile.js.map +1 -0
- package/dist/dependency-analyzer/index.d.ts +2 -0
- package/dist/errors/errors.d.ts +9 -0
- package/dist/errors/errors.js +119 -0
- package/dist/errors/errors.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/schema/typescript-types/bundle-metadata-types.d.ts +14 -0
- package/dist/schema/typescript-types/common-metadata-types.d.ts +25 -0
- package/dist/schema/typescript-types/script-metadata-types.d.ts +241 -0
- package/dist/schema/typescript-types/script-metadata-types.js +18 -0
- package/dist/schema/typescript-types/script-metadata-types.js.map +1 -0
- package/dist/schema/typescript-types/style-metadata-types.d.ts +35 -0
- package/dist/schema/typescript-types/style-metadata-types.js +13 -0
- package/dist/schema/typescript-types/style-metadata-types.js.map +1 -0
- package/dist/schema/typescript-types/template-metadata-types.d.ts +11 -0
- package/dist/schema/typescript-types/template-metadata-types.js +13 -0
- package/dist/schema/typescript-types/template-metadata-types.js.map +1 -0
- package/dist/script-metadata/__tests__/class.members.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/classes.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/dynamic-import-hints.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/dynamic-imports.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/exports-default.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/exports.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/imports.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/module-references.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/reexports.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/script-metadata.spec.d.ts +1 -0
- package/dist/script-metadata/__tests__/test-util.d.ts +3 -0
- package/dist/script-metadata/decorators/__tests__/decorators.spec.d.ts +1 -0
- package/dist/script-metadata/decorators/index.d.ts +4 -0
- package/dist/script-metadata/decorators/index.js +184 -0
- package/dist/script-metadata/decorators/index.js.map +1 -0
- package/dist/script-metadata/events/__tests__/event-construction.spec.d.ts +1 -0
- package/dist/script-metadata/events/__tests__/event-dispatch.spec.d.ts +1 -0
- package/dist/script-metadata/events/__tests__/event-listener.spec.d.ts +1 -0
- package/dist/script-metadata/events/event-construction.d.ts +7 -0
- package/dist/script-metadata/events/event-construction.js +55 -0
- package/dist/script-metadata/events/event-construction.js.map +1 -0
- package/dist/script-metadata/events/event-dispatch.d.ts +5 -0
- package/dist/script-metadata/events/event-dispatch.js +46 -0
- package/dist/script-metadata/events/event-dispatch.js.map +1 -0
- package/dist/script-metadata/events/event-listener.d.ts +4 -0
- package/dist/script-metadata/events/event-listener.js +74 -0
- package/dist/script-metadata/events/event-listener.js.map +1 -0
- package/dist/script-metadata/events/util.d.ts +14 -0
- package/dist/script-metadata/events/util.js +63 -0
- package/dist/script-metadata/events/util.js.map +1 -0
- package/dist/script-metadata/index.d.ts +8 -0
- package/dist/script-metadata/index.js +203 -0
- package/dist/script-metadata/index.js.map +1 -0
- package/dist/script-metadata/module-references/__tests__/generic-module.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/local-module.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/access-check.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/apex-continuation.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/apex.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/base.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/client.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/commerce.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/community.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/content-asset-url.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/custom-permission.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/gates.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/i18n.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/internal.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/komaci.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/label.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/loader.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/message-channel.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/metric.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/resource-url.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/schema.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/site.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/slds.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/user-permission.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/__tests__/salesforce-references/user.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/collectors/__tests__/collection-api.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/collectors/generic-module.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/generic-module.js +92 -0
- package/dist/script-metadata/module-references/collectors/generic-module.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/local-module.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/local-module.js +16 -0
- package/dist/script-metadata/module-references/collectors/local-module.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/main.d.ts +8 -0
- package/dist/script-metadata/module-references/collectors/main.js +37 -0
- package/dist/script-metadata/module-references/collectors/main.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/access-check.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/access-check.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/access-check.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/apex.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/apex.js +88 -0
- package/dist/script-metadata/module-references/collectors/scoped/apex.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/client.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/client.js +28 -0
- package/dist/script-metadata/module-references/collectors/scoped/client.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/commerce.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/commerce.js +26 -0
- package/dist/script-metadata/module-references/collectors/scoped/commerce.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/community.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/community.js +29 -0
- package/dist/script-metadata/module-references/collectors/scoped/community.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/design-system.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/design-system.js +21 -0
- package/dist/script-metadata/module-references/collectors/scoped/design-system.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/gate.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/gate.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/gate.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.d.ts +9 -0
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js +22 -0
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/i18n.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/i18n.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/i18n.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/internal.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/internal.js +35 -0
- package/dist/script-metadata/module-references/collectors/scoped/internal.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/komaci.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/komaci.js +67 -0
- package/dist/script-metadata/module-references/collectors/scoped/komaci.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/label.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/label.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/label.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/metric.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/metric.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/metric.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/schema.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/schema.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/schema.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/site.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/site.js +28 -0
- package/dist/script-metadata/module-references/collectors/scoped/site.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js +12 -0
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/user.d.ts +3 -0
- package/dist/script-metadata/module-references/collectors/scoped/user.js +28 -0
- package/dist/script-metadata/module-references/collectors/scoped/user.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/utils.d.ts +16 -0
- package/dist/script-metadata/module-references/collectors/utils.js +166 -0
- package/dist/script-metadata/module-references/collectors/utils.js.map +1 -0
- package/dist/script-metadata/module-references/reference.d.ts +4 -0
- package/dist/script-metadata/module-references/reference.js +78 -0
- package/dist/script-metadata/module-references/reference.js.map +1 -0
- package/dist/script-metadata/resolver.d.ts +17 -0
- package/dist/script-metadata/resolver.js +306 -0
- package/dist/script-metadata/resolver.js.map +1 -0
- package/dist/script-metadata/utils.d.ts +34 -0
- package/dist/script-metadata/utils.js +118 -0
- package/dist/script-metadata/utils.js.map +1 -0
- package/dist/script-metadata/visitors/call-expression-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/call-expression-visitor.js +124 -0
- package/dist/script-metadata/visitors/call-expression-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/class-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/class-visitor.js +195 -0
- package/dist/script-metadata/visitors/class-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/dynamic-imports-visitor.d.ts +9 -0
- package/dist/script-metadata/visitors/dynamic-imports-visitor.js +68 -0
- package/dist/script-metadata/visitors/dynamic-imports-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/export-all-visitor.d.ts +10 -0
- package/dist/script-metadata/visitors/export-all-visitor.js +65 -0
- package/dist/script-metadata/visitors/export-all-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/export-default-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/export-default-visitor.js +67 -0
- package/dist/script-metadata/visitors/export-default-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/export-named-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/export-named-visitor.js +125 -0
- package/dist/script-metadata/visitors/export-named-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/module-imports-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/module-imports-visitor.js +63 -0
- package/dist/script-metadata/visitors/module-imports-visitor.js.map +1 -0
- package/dist/script-metadata/visitors/new-expression-visitor.d.ts +5 -0
- package/dist/script-metadata/visitors/new-expression-visitor.js +36 -0
- package/dist/script-metadata/visitors/new-expression-visitor.js.map +1 -0
- package/dist/shared/config.d.ts +15 -0
- package/dist/shared/utils.d.ts +66 -0
- package/dist/shared/utils.js +129 -0
- package/dist/shared/utils.js.map +1 -0
- package/dist/style-metadata/__tests__/component-references.spec.d.ts +1 -0
- package/dist/style-metadata/__tests__/custom-properties.spec.d.ts +1 -0
- package/dist/style-metadata/__tests__/imports.spec.d.ts +1 -0
- package/dist/style-metadata/__tests__/index.spec.d.ts +1 -0
- package/dist/style-metadata/component-references.d.ts +4 -0
- package/dist/style-metadata/component-references.js +82 -0
- package/dist/style-metadata/component-references.js.map +1 -0
- package/dist/style-metadata/custom-properties.d.ts +3 -0
- package/dist/style-metadata/custom-properties.js +70 -0
- package/dist/style-metadata/custom-properties.js.map +1 -0
- package/dist/style-metadata/imports.d.ts +4 -0
- package/dist/style-metadata/imports.js +120 -0
- package/dist/style-metadata/imports.js.map +1 -0
- package/dist/style-metadata/index.d.ts +6 -0
- package/dist/style-metadata/index.js +70 -0
- package/dist/style-metadata/index.js.map +1 -0
- package/dist/template-metadata/__tests__/component-reference.spec.d.ts +1 -0
- package/dist/template-metadata/index.d.ts +6 -0
- package/dist/template-metadata/index.js +136 -0
- package/dist/template-metadata/index.js.map +1 -0
- package/package.json +35 -0
package/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Terms of Use
|
|
2
|
+
|
|
3
|
+
Copyright 2022 Salesforce, Inc. All rights reserved.
|
|
4
|
+
|
|
5
|
+
These Terms of Use govern the download, installation, and/or use of this software provided by Salesforce, Inc. (“Salesforce”) (the “Software”), were last updated on April 15, 2022, ** and constitute a legally binding agreement between you and Salesforce. If you do not agree to these Terms of Use, do not install or use the Software.
|
|
6
|
+
|
|
7
|
+
Salesforce grants you a worldwide, non-exclusive, no-charge, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute the Software and derivative works subject to these Terms. These Terms shall be included in all copies or substantial portions of the Software.
|
|
8
|
+
|
|
9
|
+
Subject to the limited rights expressly granted hereunder, Salesforce reserves all rights, title, and interest in and to all intellectual property subsisting in the Software. No rights are granted to you hereunder other than as expressly set forth herein. Users residing in countries on the United States Office of Foreign Assets Control sanction list, or which are otherwise subject to a US export embargo, may not use the Software.
|
|
10
|
+
|
|
11
|
+
Implementation of the Software may require development work, for which you are responsible. The Software may contain bugs, errors and incompatibilities and is made available on an AS IS basis without support, updates, or service level commitments.
|
|
12
|
+
|
|
13
|
+
Salesforce reserves the right at any time to modify, suspend, or discontinue, the Software (or any part thereof) with or without notice. You agree that Salesforce shall not be liable to you or to any third party for any modification, suspension, or discontinuance.
|
|
14
|
+
|
|
15
|
+
You agree to defend Salesforce against any claim, demand, suit or proceeding made or brought against Salesforce by a third party arising out of or accruing from (a) your use of the Software, and (b) any application you develop with the Software that infringes any copyright, trademark, trade secret, trade dress, patent, or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy (each a “Claim Against Salesforce”), and will indemnify Salesforce from any damages, attorney fees, and costs finally awarded against Salesforce as a result of, or for any amounts paid by Salesforce under a settlement approved by you in writing of, a Claim Against Salesforce, provided Salesforce (x) promptly gives you written notice of the Claim Against Salesforce, (y) gives you sole control of the defense and settlement of the Claim Against Salesforce (except that you may not settle any Claim Against Salesforce unless it unconditionally releases Salesforce of all liability), and (z) gives you all reasonable assistance, at your expense.
|
|
16
|
+
|
|
17
|
+
WITHOUT LIMITING THE GENERALITY OF THE FOREGOING, THE SOFTWARE IS NOT SUPPORTED AND IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL SALESFORCE HAVE ANY LIABILITY FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES, OR DAMAGES BASED ON LOST PROFITS, DATA, OR USE, IN CONNECTION WITH THE SOFTWARE, HOWEVER CAUSED AND WHETHER IN CONTRACT, TORT, OR UNDER ANY OTHER THEORY OF LIABILITY, WHETHER OR NOT YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
18
|
+
|
|
19
|
+
These Terms of Use shall be governed exclusively by the internal laws of the State of California, without regard to its conflicts of laws rules. Each party hereby consents to the exclusive jurisdiction of the state and federal courts located in San Francisco County, California to adjudicate any dispute arising out of or relating to these Terms of Use and the download, installation, and/or use of the Software. Except as expressly stated herein, these Terms of Use constitute the entire agreement between the parties, and supersede all prior and contemporaneous agreements, proposals, or representations, written or oral, concerning their subject matter. No modification, amendment, or waiver of any provision of these Terms of Use shall be effective unless it is by an update to these Terms of Use that Salesforce makes available, or is in writing and signed by the party against whom the modification, amendment, or waiver is to be asserted.
|
|
20
|
+
|
|
21
|
+
Data Privacy: Salesforce may collect, process, and store device, system, and other information related to your use of the Software. This information includes, but is not limited to, IP address, user metrics, and other data (“Usage Data”). Salesforce may use Usage Data for analytics, product development, and marketing purposes. You acknowledge that files generated in conjunction with the Software may contain sensitive or confidential data, and you are solely responsible for anonymizing and protecting such data.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var path = require('path');
|
|
6
|
+
var index$2 = require('./template-metadata/index.js');
|
|
7
|
+
var index$1 = require('./script-metadata/index.js');
|
|
8
|
+
var index = require('./style-metadata/index.js');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n["default"] = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
var path__namespace = /*#__PURE__*/_interopNamespace(path);
|
|
29
|
+
|
|
30
|
+
// Copyright (c) 2022, Salesforce, Inc.,
|
|
31
|
+
function resolveEntryFile(bundleName, files) {
|
|
32
|
+
let entryFileName;
|
|
33
|
+
for (const { fileName } of files) {
|
|
34
|
+
const parsedPath = path__namespace.parse(fileName);
|
|
35
|
+
// If file name matches bundle name
|
|
36
|
+
// NOTE: the directory is already validated in validateBundleConfig()
|
|
37
|
+
if (parsedPath.name === bundleName) {
|
|
38
|
+
if (parsedPath.ext === '.css') {
|
|
39
|
+
// If a js entry file has not been discovered yet, could be a css only module
|
|
40
|
+
entryFileName = fileName;
|
|
41
|
+
}
|
|
42
|
+
else if (parsedPath.ext === '.js') {
|
|
43
|
+
// If a js entry file is found, exit early
|
|
44
|
+
return fileName;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return entryFileName;
|
|
49
|
+
}
|
|
50
|
+
function rollupDiagnostics(files) {
|
|
51
|
+
return files.flatMap((file) => {
|
|
52
|
+
const diagnostics = file.diagnostics;
|
|
53
|
+
// Reset the diagnostic for individual files to avoid duplicating them at the bundle
|
|
54
|
+
// level and file level
|
|
55
|
+
file.diagnostics = [];
|
|
56
|
+
return diagnostics;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/* function validateBundleConfig(config: BundleConfig): void {
|
|
60
|
+
const { files, namespace, name: bundleName } = config;
|
|
61
|
+
|
|
62
|
+
// 1. Verify that every fileName has "<namespace>/<bundlename>" as the directory
|
|
63
|
+
const expectedDirectoryName = namespace + '/' + bundleName;
|
|
64
|
+
const violatingFiles = files
|
|
65
|
+
.filter(({ fileName }) => {
|
|
66
|
+
const parsedPath = path.parse(fileName);
|
|
67
|
+
return !parsedPath.dir.startsWith(expectedDirectoryName);
|
|
68
|
+
})
|
|
69
|
+
.map(({ fileName }) => fileName);
|
|
70
|
+
if (violatingFiles.length) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Invalid fileName provided in BundleConfig. Expected format "namespace/bundleName/filename.ext". Offending file names: \n${violatingFiles.join(
|
|
73
|
+
'\n'
|
|
74
|
+
)}`
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
} */
|
|
78
|
+
const version = '2.19.0';
|
|
79
|
+
function collectBundleMetadata(config) {
|
|
80
|
+
// validateBundleConfig(config);
|
|
81
|
+
const { namespace, name, type, namespaceMapping, files, enableKomaci } = config;
|
|
82
|
+
const filesResult = [];
|
|
83
|
+
files.forEach(({ fileName, source }) => {
|
|
84
|
+
const ext = path__namespace.extname(fileName);
|
|
85
|
+
switch (ext) {
|
|
86
|
+
case '.html':
|
|
87
|
+
filesResult.push(index$2.collectTemplateMetadataFromSource(fileName, source, {
|
|
88
|
+
namespaceMapping,
|
|
89
|
+
enableKomaci,
|
|
90
|
+
}));
|
|
91
|
+
break;
|
|
92
|
+
case '.js':
|
|
93
|
+
filesResult.push(index$1.collectScriptMetadataFromSource(fileName, source, {
|
|
94
|
+
namespaceMapping,
|
|
95
|
+
bundleType: type,
|
|
96
|
+
enableKomaci,
|
|
97
|
+
}));
|
|
98
|
+
break;
|
|
99
|
+
case '.css':
|
|
100
|
+
filesResult.push(index.collectCssMetadataFromSource(fileName, source, { namespaceMapping }));
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
const entryFileName = resolveEntryFile(name, files);
|
|
105
|
+
const diagnostics = [];
|
|
106
|
+
diagnostics.push(...rollupDiagnostics(filesResult));
|
|
107
|
+
return {
|
|
108
|
+
version,
|
|
109
|
+
moduleSpecifier: `${namespace}/${name}`,
|
|
110
|
+
name,
|
|
111
|
+
namespace,
|
|
112
|
+
files: filesResult,
|
|
113
|
+
entryFileName,
|
|
114
|
+
diagnostics,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
exports.collectBundleMetadata = collectBundleMetadata;
|
|
119
|
+
//# sourceMappingURL=bundle-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundle-metadata.js","sources":["../src/bundle-metadata.ts"],"sourcesContent":[null],"names":["path","collectTemplateMetadataFromSource","collectScriptMetadataFromSource","collectCssMetadataFromSource"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAoBA,SAAS,gBAAgB,CACrB,UAAkB,EAClB,KAGG,EAAA;AAEH,IAAA,IAAI,aAAiC,CAAC;AAEtC,IAAA,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,KAAK,EAAE;QAC9B,MAAM,UAAU,GAAGA,eAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;;;AAGxC,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,UAAU,CAAC,GAAG,KAAK,MAAM,EAAE;;gBAE3B,aAAa,GAAG,QAAQ,CAAC;AAC5B,aAAA;AAAM,iBAAA,IAAI,UAAU,CAAC,GAAG,KAAK,KAAK,EAAE;;AAEjC,gBAAA,OAAO,QAAQ,CAAC;AACnB,aAAA;AACJ,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAA;AACpC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;;;AAGrC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;;;;;;;;;;;;;;;AAkBI;AAEJ,MAAM,OAAO,GAAG,QAAa,CAAC;AACxB,SAAU,qBAAqB,CAAC,MAAoB,EAAA;;AAGtD,IAAA,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAChF,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAI;QACnC,MAAM,GAAG,GAAGA,eAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEnC,QAAA,QAAQ,GAAG;AACP,YAAA,KAAK,OAAO;gBACR,WAAW,CAAC,IAAI,CACZC,yCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAChD,gBAAgB;oBAChB,YAAY;AACf,iBAAA,CAAC,CACL,CAAC;gBACF,MAAM;AACV,YAAA,KAAK,KAAK;gBACN,WAAW,CAAC,IAAI,CACZC,uCAA+B,CAAC,QAAQ,EAAE,MAAM,EAAE;oBAC9C,gBAAgB;AAChB,oBAAA,UAAU,EAAE,IAAI;oBAChB,YAAY;AACf,iBAAA,CAAC,CACL,CAAC;gBACF,MAAM;AACV,YAAA,KAAK,MAAM;AACP,gBAAA,WAAW,CAAC,IAAI,CACZC,kCAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC,CACvE,CAAC;gBACF,MAAM;AAIb,SAAA;AACL,KAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,WAAW,GAAyB,EAAE,CAAC;IAQ7C,WAAW,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,OAAO;QACH,OAAO;AACP,QAAA,eAAe,EAAE,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA;QACvC,IAAI;QACJ,SAAS;AACT,QAAA,KAAK,EAAE,WAAW;QAClB,aAAa;QACb,WAAW;KACd,CAAC;AACN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { KomaciDocument } from '@komaci/types';
|
|
2
|
+
import { ScriptFile } from '../schema/typescript-types/script-metadata-types';
|
|
3
|
+
import { ScriptState } from '../script-metadata/utils';
|
|
4
|
+
export declare function generateKomaciDocFromScript(scriptFile: ScriptFile, scriptState: ScriptState): KomaciDocument;
|
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('../script-metadata/utils.js');
|
|
6
|
+
|
|
7
|
+
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
+
// Convert metadata of an LWC script file into a Komaci Document.
|
|
9
|
+
function generateKomaciDocFromScript(scriptFile, scriptState) {
|
|
10
|
+
const komaciDoc = {};
|
|
11
|
+
const analyzerContext = {
|
|
12
|
+
komaciDoc,
|
|
13
|
+
defaultBindingsMap: {},
|
|
14
|
+
exportedNamesMap: {},
|
|
15
|
+
exportedWithoutLocalNames: {},
|
|
16
|
+
importIndexes: {},
|
|
17
|
+
adgNameIndexMap: {},
|
|
18
|
+
aliasToLocalMap: {},
|
|
19
|
+
namespaceImports: [],
|
|
20
|
+
};
|
|
21
|
+
gatherBindingNames(analyzerContext, scriptFile);
|
|
22
|
+
gatherExportedNames(analyzerContext, scriptFile);
|
|
23
|
+
processClasses(analyzerContext, scriptFile);
|
|
24
|
+
processClassExtends(analyzerContext, scriptFile, scriptState);
|
|
25
|
+
return komaciDoc;
|
|
26
|
+
}
|
|
27
|
+
// Construct defaultBindingsMap & aliasToLocalMap on AnalyzerContext
|
|
28
|
+
function gatherBindingNames(analyzerContext, scriptFile) {
|
|
29
|
+
const defaultBindingsMap = analyzerContext.defaultBindingsMap;
|
|
30
|
+
scriptFile.imports.forEach((importMetadata) => {
|
|
31
|
+
if (importMetadata.defaultBinding) {
|
|
32
|
+
let moduleDefaultBindingNames = defaultBindingsMap[importMetadata.moduleSpecifier];
|
|
33
|
+
if (!moduleDefaultBindingNames) {
|
|
34
|
+
moduleDefaultBindingNames = [];
|
|
35
|
+
defaultBindingsMap[importMetadata.moduleSpecifier] = moduleDefaultBindingNames;
|
|
36
|
+
}
|
|
37
|
+
moduleDefaultBindingNames.push(importMetadata.defaultBinding.name);
|
|
38
|
+
}
|
|
39
|
+
if (importMetadata.namedImports) {
|
|
40
|
+
importMetadata.namedImports.forEach((namedImport) => {
|
|
41
|
+
if (namedImport.aliasName) {
|
|
42
|
+
analyzerContext.aliasToLocalMap[namedImport.aliasName] = namedImport.name;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (importMetadata.namespaceImport) {
|
|
47
|
+
analyzerContext.namespaceImports.push(importMetadata.moduleSpecifier);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// Construct mapping of the localName of named exports to their corresponding exported names.
|
|
52
|
+
function gatherExportedNames(analyzerContext, scriptFile) {
|
|
53
|
+
const exportedNamesMap = analyzerContext.exportedNamesMap;
|
|
54
|
+
const exportedWithoutLocalNames = analyzerContext.exportedWithoutLocalNames;
|
|
55
|
+
scriptFile.exports.forEach((exportMetadata) => {
|
|
56
|
+
if (exportMetadata.namedExports) {
|
|
57
|
+
exportMetadata.namedExports.forEach((namedExport) => {
|
|
58
|
+
const localName = namedExport.localName;
|
|
59
|
+
if (localName) {
|
|
60
|
+
const exportedNames = exportedNamesMap[localName];
|
|
61
|
+
if (!exportedNames) {
|
|
62
|
+
exportedNamesMap[localName] = [namedExport.exportedName];
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
exportedNames.push(namedExport.exportedName);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
exportedWithoutLocalNames[namedExport.exportedName] = true;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// Cycle metadata for LWC classes to convert component classes to Komaci ADGs.
|
|
76
|
+
function processClasses(analyzerContext, scriptFile) {
|
|
77
|
+
const komaciDoc = analyzerContext.komaciDoc;
|
|
78
|
+
scriptFile.classes.forEach((classMetadata) => {
|
|
79
|
+
if (classMetadata.extends) {
|
|
80
|
+
const adg = {};
|
|
81
|
+
if (!komaciDoc.adgs) {
|
|
82
|
+
komaciDoc.adgs = [];
|
|
83
|
+
}
|
|
84
|
+
komaciDoc.adgs.push(adg);
|
|
85
|
+
const adgIdx = komaciDoc.adgs.length - 1;
|
|
86
|
+
// Unnamed class can not be referenced from the same module
|
|
87
|
+
if (classMetadata.name)
|
|
88
|
+
analyzerContext.adgNameIndexMap[classMetadata.name] = adgIdx;
|
|
89
|
+
processClassProperties(analyzerContext, adg, classMetadata);
|
|
90
|
+
processClassMethods(analyzerContext, adg, classMetadata);
|
|
91
|
+
// Contribute exports to the KomaciDoc based on the exported names for this class.
|
|
92
|
+
const exportedNames = getExportedNames(analyzerContext, scriptFile, classMetadata);
|
|
93
|
+
exportedNames?.forEach((name) => {
|
|
94
|
+
if (!komaciDoc.exports) {
|
|
95
|
+
komaciDoc.exports = {};
|
|
96
|
+
}
|
|
97
|
+
komaciDoc.exports[name] = {
|
|
98
|
+
type: 'AdgReference',
|
|
99
|
+
value: adgIdx,
|
|
100
|
+
};
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add ParentClass property to ADG if it does not direclty extend from LightningElement.
|
|
107
|
+
* @param analyzerContext
|
|
108
|
+
* @param scriptFile
|
|
109
|
+
*/
|
|
110
|
+
function processClassExtends(analyzerContext, scriptFile, scriptState) {
|
|
111
|
+
const komaciDoc = analyzerContext.komaciDoc;
|
|
112
|
+
scriptFile.classes.forEach((classMetadata) => {
|
|
113
|
+
// LightningElement does not need to be added explicitly as parentClass
|
|
114
|
+
if (!classMetadata.isComponentClass &&
|
|
115
|
+
classMetadata.extends &&
|
|
116
|
+
classMetadata.name &&
|
|
117
|
+
komaciDoc.adgs) {
|
|
118
|
+
const adgIdx = analyzerContext.adgNameIndexMap[classMetadata.name];
|
|
119
|
+
const adg = komaciDoc.adgs[adgIdx];
|
|
120
|
+
const parentClass = classMetadata.extends;
|
|
121
|
+
let ref;
|
|
122
|
+
if (parentClass !== 'unresolved' &&
|
|
123
|
+
'moduleSpecifier' in parentClass &&
|
|
124
|
+
isValidKomaciModuleName(parentClass.moduleSpecifier)) {
|
|
125
|
+
// imports reference
|
|
126
|
+
const localNameForParentClass = analyzerContext.aliasToLocalMap[parentClass.name];
|
|
127
|
+
const parentClassName = localNameForParentClass
|
|
128
|
+
? localNameForParentClass
|
|
129
|
+
: parentClass.name;
|
|
130
|
+
ref = getImportReference(analyzerContext, parentClass.moduleSpecifier, parentClassName, { useKomaciModuleName: true }, parentClass.location);
|
|
131
|
+
}
|
|
132
|
+
else if (parentClass !== 'unresolved' &&
|
|
133
|
+
!('moduleSpecifier' in parentClass) &&
|
|
134
|
+
parentClass.name != undefined) {
|
|
135
|
+
// do not add adg.parentClass
|
|
136
|
+
if (analyzerContext.adgNameIndexMap[parentClass.name] === undefined) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
// reference another adg in the same komaci doc
|
|
140
|
+
ref = {
|
|
141
|
+
type: 'AdgReference',
|
|
142
|
+
value: analyzerContext.adgNameIndexMap[parentClass.name],
|
|
143
|
+
location: parentClass.location,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
// generate location from script state in unresolvable case
|
|
148
|
+
const classNodePath = scriptState.classNodeLookup.get(classMetadata);
|
|
149
|
+
if (classNodePath) {
|
|
150
|
+
const location = utils.generateSourceLocation(classNodePath.parentPath.node);
|
|
151
|
+
ref = getUnresolvedValue(location);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
ref = getUnresolvedValue();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
adg.parentClass = ref;
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// Cycle properties on the LWC class metadata and contribute Komaci
|
|
162
|
+
// properties to its provided Adg.
|
|
163
|
+
function processClassProperties(analyzerContext, adg, classMetadata) {
|
|
164
|
+
if (classMetadata.properties.length === 0) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const properties = {};
|
|
168
|
+
adg.properties = properties;
|
|
169
|
+
classMetadata.properties.forEach((propertyMetadata) => {
|
|
170
|
+
if (propertyMetadata.dataProperty) {
|
|
171
|
+
const property = {
|
|
172
|
+
isPublic: propertyMetadata.decorators.some(isApiDecorator),
|
|
173
|
+
};
|
|
174
|
+
properties[propertyMetadata.name] = property;
|
|
175
|
+
const initialValue = getStaticValue(analyzerContext, propertyMetadata.dataProperty.initialValue);
|
|
176
|
+
// Omit primitive undefined, as that is the default.
|
|
177
|
+
if (initialValue.value !== undefined) {
|
|
178
|
+
property.initial = initialValue;
|
|
179
|
+
}
|
|
180
|
+
// If property is wired, then process the wire's metadata.
|
|
181
|
+
const wireDecorator = propertyMetadata.decorators.find(isWireDecorator);
|
|
182
|
+
if (wireDecorator) {
|
|
183
|
+
const wireFunction = processWireFunction(analyzerContext, wireDecorator);
|
|
184
|
+
if (!adg.functions) {
|
|
185
|
+
adg.functions = [];
|
|
186
|
+
}
|
|
187
|
+
adg.functions.push(wireFunction);
|
|
188
|
+
const functionIdx = adg.functions.length - 1;
|
|
189
|
+
// Link the created function as input to this property.
|
|
190
|
+
property.input = {
|
|
191
|
+
type: 'FunctionReference',
|
|
192
|
+
value: functionIdx,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else if (propertyMetadata.getter) {
|
|
197
|
+
const property = {
|
|
198
|
+
isPublic: propertyMetadata.decorators.some(isApiDecorator),
|
|
199
|
+
// Komaci sets the hardcoded getters value as the input to this prop
|
|
200
|
+
input: getStaticValue(analyzerContext, propertyMetadata.getter.initialValue),
|
|
201
|
+
};
|
|
202
|
+
properties[propertyMetadata.name] = property;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
// Convert LWC wire metadata to Komaci WireFunction.
|
|
207
|
+
function processWireFunction(analyzerContext, wireMetadata) {
|
|
208
|
+
let wireReference;
|
|
209
|
+
if (wireMetadata.adapterModule === 'unresolved') {
|
|
210
|
+
wireReference = getUnresolvedValue();
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
wireReference = getImportReference(analyzerContext, wireMetadata.adapterModule, wireMetadata.adapterId.importedName, { useKomaciModuleName: false });
|
|
214
|
+
}
|
|
215
|
+
// Construct input into the function based on the config metadata.
|
|
216
|
+
const adapterLoc = wireMetadata.adapterId.location;
|
|
217
|
+
const functionInput = [];
|
|
218
|
+
const wireFunction = {
|
|
219
|
+
type: 'WireFunction',
|
|
220
|
+
reference: wireReference,
|
|
221
|
+
input: functionInput,
|
|
222
|
+
location: {
|
|
223
|
+
startLine: wireMetadata.location.startLine,
|
|
224
|
+
startColumn: wireMetadata.location.startColumn,
|
|
225
|
+
endLine: wireMetadata.location.endLine,
|
|
226
|
+
endColumn: wireMetadata.location.endColumn,
|
|
227
|
+
},
|
|
228
|
+
adapterLocation: {
|
|
229
|
+
startLine: adapterLoc.startLine,
|
|
230
|
+
startColumn: adapterLoc.startColumn,
|
|
231
|
+
endLine: adapterLoc.endLine,
|
|
232
|
+
endColumn: adapterLoc.endColumn,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
if (wireMetadata.adapterConfig) {
|
|
236
|
+
const wireConfig = {};
|
|
237
|
+
functionInput.push({
|
|
238
|
+
type: 'ObjectValue',
|
|
239
|
+
value: wireConfig,
|
|
240
|
+
});
|
|
241
|
+
const propLocs = {};
|
|
242
|
+
// Configuration where value is a static.
|
|
243
|
+
for (const propName of Object.keys(wireMetadata.adapterConfig.static)) {
|
|
244
|
+
wireConfig[propName] = getStaticValue(analyzerContext, wireMetadata.adapterConfig.static[propName].value);
|
|
245
|
+
const loc = wireMetadata.adapterConfig.static[propName].keyLocation;
|
|
246
|
+
propLocs[propName] = {
|
|
247
|
+
startLine: loc.startLine,
|
|
248
|
+
startColumn: loc.startColumn,
|
|
249
|
+
endLine: loc.endLine,
|
|
250
|
+
endColumn: loc.endColumn,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
// Config prefixed with $ to reference a property on the component instance.
|
|
254
|
+
for (const propName of Object.keys(wireMetadata.adapterConfig.reactive)) {
|
|
255
|
+
wireConfig[propName] = getPropertyReference(wireMetadata.adapterConfig.reactive[propName].classProperty);
|
|
256
|
+
const loc = wireMetadata.adapterConfig.reactive[propName].keyLocation;
|
|
257
|
+
propLocs[propName] = {
|
|
258
|
+
startLine: loc.startLine,
|
|
259
|
+
startColumn: loc.startColumn,
|
|
260
|
+
endLine: loc.endLine,
|
|
261
|
+
endColumn: loc.endColumn,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
wireFunction.adapterConfigLocations = propLocs;
|
|
265
|
+
}
|
|
266
|
+
return wireFunction;
|
|
267
|
+
}
|
|
268
|
+
// Identify class methods which are decorated as wires. These will become
|
|
269
|
+
// functions in Komaci ADG which are not associated with a property.
|
|
270
|
+
function processClassMethods(analyzerContext, adg, classMetadata) {
|
|
271
|
+
classMetadata.methods.forEach((methodMetadata) => {
|
|
272
|
+
const wireDecorator = methodMetadata.decorators.find(isWireDecorator);
|
|
273
|
+
if (wireDecorator) {
|
|
274
|
+
const wireFunction = processWireFunction(analyzerContext, wireDecorator);
|
|
275
|
+
if (!adg.functions) {
|
|
276
|
+
adg.functions = [];
|
|
277
|
+
}
|
|
278
|
+
adg.functions.push(wireFunction);
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Search for existing Komaci Import, dynamically create them as needed.
|
|
284
|
+
*
|
|
285
|
+
* @param komaciDoc
|
|
286
|
+
* @param moduleSpecifier Name of module containing the exported binding.
|
|
287
|
+
* @param importedName Name of binding exported from the module.
|
|
288
|
+
* @param useKomaciModuleName Boolean value, describing the import is komaci module.
|
|
289
|
+
* @returns Reference to import (e.g. 0/names/0).
|
|
290
|
+
*/
|
|
291
|
+
function getImportReference(analyzerContext, moduleSpecifier, importedName, options, location) {
|
|
292
|
+
const { komaciDoc, defaultBindingsMap, importIndexes, namespaceImports } = analyzerContext;
|
|
293
|
+
let namespacedMember;
|
|
294
|
+
if (!komaciDoc.imports) {
|
|
295
|
+
komaciDoc.imports = [];
|
|
296
|
+
}
|
|
297
|
+
// See if the importedName is a default binding from the specified module.
|
|
298
|
+
if (defaultBindingsMap[moduleSpecifier]?.includes(importedName)) {
|
|
299
|
+
// If yes, Komaci will use "default" as the name.
|
|
300
|
+
importedName = 'default';
|
|
301
|
+
}
|
|
302
|
+
// if the imported module is namespace import, collect member name and update importName to '*'
|
|
303
|
+
if (namespaceImports.includes(moduleSpecifier)) {
|
|
304
|
+
namespacedMember = importedName === '*' ? undefined : importedName;
|
|
305
|
+
importedName = '*';
|
|
306
|
+
}
|
|
307
|
+
// Use index info for the specified module to construct ImportReference.
|
|
308
|
+
const resourceName = options.useKomaciModuleName
|
|
309
|
+
? getKomaciModuleName(moduleSpecifier)
|
|
310
|
+
: moduleSpecifier;
|
|
311
|
+
const indexInfo = importIndexes[resourceName];
|
|
312
|
+
let value;
|
|
313
|
+
if (indexInfo) {
|
|
314
|
+
// KomaciDoc has an import for this module.
|
|
315
|
+
const moduleImportIndex = indexInfo.moduleIndex;
|
|
316
|
+
let importedNameIndex = indexInfo.names[importedName];
|
|
317
|
+
if (importedNameIndex === undefined) {
|
|
318
|
+
// Komaci Import exist but names doesn't contain the importedName.
|
|
319
|
+
const komaciImport = komaciDoc.imports[moduleImportIndex];
|
|
320
|
+
komaciImport.names.push(importedName);
|
|
321
|
+
// Record the index info of the imported name.
|
|
322
|
+
importedNameIndex = komaciImport.names.length - 1;
|
|
323
|
+
indexInfo.names[importedName] = importedNameIndex;
|
|
324
|
+
}
|
|
325
|
+
value = `${moduleImportIndex}/names/${importedNameIndex}`;
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
// KomaciDoc has no imports for this module.
|
|
329
|
+
komaciDoc.imports.push({
|
|
330
|
+
resourceName,
|
|
331
|
+
names: [importedName],
|
|
332
|
+
});
|
|
333
|
+
const moduleImportIndex = komaciDoc.imports.length - 1;
|
|
334
|
+
// Record the index of the module and imported name.
|
|
335
|
+
importIndexes[resourceName] = {
|
|
336
|
+
moduleIndex: moduleImportIndex,
|
|
337
|
+
names: {
|
|
338
|
+
[importedName]: 0,
|
|
339
|
+
},
|
|
340
|
+
};
|
|
341
|
+
value = `${moduleImportIndex}/names/0`;
|
|
342
|
+
}
|
|
343
|
+
const ref = {
|
|
344
|
+
type: 'ImportReference',
|
|
345
|
+
value: value,
|
|
346
|
+
};
|
|
347
|
+
if (location)
|
|
348
|
+
ref.location = location;
|
|
349
|
+
if (namespacedMember)
|
|
350
|
+
ref.namespacedMember = namespacedMember;
|
|
351
|
+
return ref;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Convert moduleSpecifier to Komaci Module Name
|
|
355
|
+
*
|
|
356
|
+
* @param moduleSpecifier Name of module being imported (e.g c/foo).
|
|
357
|
+
* @returns Reference of the komaci module to import (e.g.: salesforce/komaci/c__foo__foo.js).
|
|
358
|
+
*/
|
|
359
|
+
function getKomaciModuleName(moduleSpecifier) {
|
|
360
|
+
// Construct komaciModuleName of the import.
|
|
361
|
+
const [namespace, name] = moduleSpecifier.split('/');
|
|
362
|
+
return `@salesforce/komaci/${namespace}__${name}__${name}.js`;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Validate if a komaci module reference can be obtained from the provided moduleSpecifier.
|
|
366
|
+
*
|
|
367
|
+
* @param moduleSpecifier Name of module being imported (e.g c/foo).
|
|
368
|
+
* @returns A boolean value.
|
|
369
|
+
*/
|
|
370
|
+
function isValidKomaciModuleName(moduleSpecifier) {
|
|
371
|
+
return moduleSpecifier.split('/').length === 2;
|
|
372
|
+
}
|
|
373
|
+
// Coverts LWC Value into Komaci StaticValue.
|
|
374
|
+
function getStaticValue(analyzerContext, value) {
|
|
375
|
+
switch (value.type) {
|
|
376
|
+
case 'Number':
|
|
377
|
+
case 'String':
|
|
378
|
+
case 'Boolean':
|
|
379
|
+
case 'Null':
|
|
380
|
+
case 'Undefined':
|
|
381
|
+
return {
|
|
382
|
+
type: 'PrimitiveValue',
|
|
383
|
+
value: value.value,
|
|
384
|
+
};
|
|
385
|
+
case 'Array':
|
|
386
|
+
return {
|
|
387
|
+
type: 'ArrayValue',
|
|
388
|
+
value: value.value.map((val) => getStaticValue(analyzerContext, val)),
|
|
389
|
+
};
|
|
390
|
+
case 'Object': {
|
|
391
|
+
const object = {};
|
|
392
|
+
for (const [k, v] of Object.entries(value.value)) {
|
|
393
|
+
object[k] = getStaticValue(analyzerContext, v);
|
|
394
|
+
}
|
|
395
|
+
return {
|
|
396
|
+
type: 'ObjectValue',
|
|
397
|
+
value: object,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
case 'ImportedValue': {
|
|
401
|
+
const importRef = getImportReference(analyzerContext, value.moduleSpecifier, value.importedName, { useKomaciModuleName: false });
|
|
402
|
+
return importRef;
|
|
403
|
+
}
|
|
404
|
+
case 'Unresolved':
|
|
405
|
+
default:
|
|
406
|
+
return getUnresolvedValue();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
// Given a class determine the name(s) its Adg should be exported under.
|
|
410
|
+
// Classes that are not exported, would return 'undefined'.
|
|
411
|
+
function getExportedNames(analyzerContext, scriptFile, classMetadata) {
|
|
412
|
+
const className = classMetadata.name;
|
|
413
|
+
if (!className) {
|
|
414
|
+
// TODO: Revisit when anonymous classes appear in metadata (W-8789710)
|
|
415
|
+
return [];
|
|
416
|
+
}
|
|
417
|
+
const exportedNames = analyzerContext.exportedNamesMap[className];
|
|
418
|
+
const exportedWithoutLocalNames = analyzerContext.exportedWithoutLocalNames[className];
|
|
419
|
+
const isMainClass = scriptFile.mainClass?.refId === classMetadata.id;
|
|
420
|
+
if (exportedNames) {
|
|
421
|
+
// The class is exported under different name(s).
|
|
422
|
+
if (isMainClass) {
|
|
423
|
+
// If it's also the main class, then export as 'default' as well.
|
|
424
|
+
return ['default', ...exportedNames];
|
|
425
|
+
}
|
|
426
|
+
return exportedNames;
|
|
427
|
+
}
|
|
428
|
+
else if (exportedWithoutLocalNames) {
|
|
429
|
+
// The class is exported without different local name.
|
|
430
|
+
return [className];
|
|
431
|
+
}
|
|
432
|
+
else if (isMainClass) {
|
|
433
|
+
return ['default'];
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
// Convert LWC reactive property reference into Komaci property ref.
|
|
437
|
+
function getPropertyReference(reactiveValue) {
|
|
438
|
+
// This regex will match . or ?. used for optional chaining.
|
|
439
|
+
const parts = reactiveValue.split(/\??\./);
|
|
440
|
+
return {
|
|
441
|
+
type: 'PropertyReference',
|
|
442
|
+
value: parts.join('/'),
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
// Reference to non-analyzable data (e.g. private properties/functions).
|
|
446
|
+
// These are intionally preserved in the Komaci Documents generated
|
|
447
|
+
// at this level of the framework.
|
|
448
|
+
function getUnresolvedValue(location) {
|
|
449
|
+
const unresolved = {
|
|
450
|
+
type: 'Unresolved',
|
|
451
|
+
value: '',
|
|
452
|
+
};
|
|
453
|
+
if (location)
|
|
454
|
+
unresolved.location = location;
|
|
455
|
+
return unresolved;
|
|
456
|
+
}
|
|
457
|
+
function isApiDecorator(d) {
|
|
458
|
+
return d.type === 'Api';
|
|
459
|
+
}
|
|
460
|
+
function isWireDecorator(d) {
|
|
461
|
+
return d.type === 'Wire';
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
exports.generateKomaciDocFromScript = generateKomaciDocFromScript;
|
|
465
|
+
//# sourceMappingURL=analyzeScriptFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzeScriptFile.js","sources":["../../src/dependency-analyzer/analyzeScriptFile.ts"],"sourcesContent":[null],"names":["generateSourceLocation"],"mappings":"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"}
|