@lwc/metadata 2.20.0 → 2.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-metadata.js +1 -1
- package/dist/errors/errors.js +1 -16
- package/dist/errors/errors.js.map +1 -1
- package/dist/schema/typescript-types/script-metadata-types.d.ts +1 -1
- package/dist/script-metadata/index.js +7 -1
- package/dist/script-metadata/index.js.map +1 -1
- package/dist/script-metadata/module-references/__tests__/salesforce-references/webstore.spec.d.ts +1 -0
- package/dist/script-metadata/module-references/collectors/generic-module.js +2 -2
- package/dist/script-metadata/module-references/collectors/generic-module.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/access-check.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/access-check.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/access-check.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/client.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/client.js +4 -18
- package/dist/script-metadata/module-references/collectors/scoped/client.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/commerce.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/commerce.js +4 -16
- package/dist/script-metadata/module-references/collectors/scoped/commerce.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/community.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/community.js +4 -19
- package/dist/script-metadata/module-references/collectors/scoped/community.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/design-system.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/design-system.js +4 -12
- package/dist/script-metadata/module-references/collectors/scoped/design-system.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/gate.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/gate.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/gate.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/i18n.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/i18n.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/i18n.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/internal.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/internal.js +4 -25
- package/dist/script-metadata/module-references/collectors/scoped/internal.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/label.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/label.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/label.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/message-channel.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/metric.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/metric.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/metric.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/resource-url.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/schema.d.ts +1 -2
- package/dist/script-metadata/module-references/collectors/scoped/schema.js +4 -3
- package/dist/script-metadata/module-references/collectors/scoped/schema.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/site.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/site.js +4 -18
- package/dist/script-metadata/module-references/collectors/scoped/site.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/user-permission.d.ts +2 -0
- package/dist/script-metadata/module-references/collectors/scoped/user-permission.js +13 -0
- package/dist/script-metadata/module-references/collectors/scoped/user-permission.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/scoped/user.d.ts +2 -3
- package/dist/script-metadata/module-references/collectors/scoped/user.js +4 -18
- package/dist/script-metadata/module-references/collectors/scoped/user.js.map +1 -1
- package/dist/script-metadata/module-references/collectors/scoped/webstore.d.ts +2 -0
- package/dist/script-metadata/module-references/collectors/scoped/webstore.js +14 -0
- package/dist/script-metadata/module-references/collectors/scoped/webstore.js.map +1 -0
- package/dist/script-metadata/module-references/collectors/utils.d.ts +7 -1
- package/dist/script-metadata/module-references/collectors/utils.js +46 -30
- package/dist/script-metadata/module-references/collectors/utils.js.map +1 -1
- package/dist/script-metadata/module-references/reference.js +15 -12
- package/dist/script-metadata/module-references/reference.js.map +1 -1
- package/dist/script-metadata/resolver.d.ts +8 -1
- package/dist/script-metadata/resolver.js +27 -12
- package/dist/script-metadata/resolver.js.map +1 -1
- package/dist/script-metadata/utils.d.ts +1 -3
- package/dist/script-metadata/utils.js +1 -1
- package/dist/script-metadata/utils.js.map +1 -1
- package/dist/script-metadata/visitors/class-visitor.js +5 -8
- package/dist/script-metadata/visitors/class-visitor.js.map +1 -1
- package/dist/template-metadata/__tests__/template-ast.spec.d.ts +1 -0
- package/dist/template-metadata/index.js +33 -0
- package/dist/template-metadata/index.js.map +1 -1
- package/package.json +5 -5
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.d.ts +0 -9
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js +0 -22
- package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js.map +0 -1
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.d.ts +0 -3
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js +0 -12
- package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js.map +0 -1
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var utils = require('../utils.js');
|
|
6
6
|
|
|
7
7
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
var metricCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'metric',
|
|
10
|
+
});
|
|
10
11
|
|
|
11
12
|
exports["default"] = metricCollector;
|
|
12
13
|
//# sourceMappingURL=metric.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metric.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/metric.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"metric.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/metric.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,sBAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,QAAQ;AACjB,CAAA,CAAC;;;;"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var utils = require('../utils.js');
|
|
6
6
|
|
|
7
7
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
var resourceUrlCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'resourceUrl',
|
|
10
|
+
});
|
|
10
11
|
|
|
11
12
|
exports["default"] = resourceUrlCollector;
|
|
12
13
|
//# sourceMappingURL=resource-url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-url.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/resource-url.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"resource-url.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/resource-url.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,2BAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,aAAa;AACtB,CAAA,CAAC;;;;"}
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var utils = require('../utils.js');
|
|
6
6
|
|
|
7
7
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
var schemaCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'schema',
|
|
10
|
+
});
|
|
10
11
|
|
|
11
12
|
exports["default"] = schemaCollector;
|
|
12
13
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/schema.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"schema.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/schema.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,sBAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,QAAQ;AACjB,CAAA,CAAC;;;;"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default siteCollector;
|
|
1
|
+
declare const _default: import("../main").CollectionStrategy;
|
|
2
|
+
export default _default;
|
|
@@ -2,27 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var errors = require('../../../../errors/errors.js');
|
|
6
5
|
var utils = require('../utils.js');
|
|
7
|
-
var genericPrefixSalesforceCollector = require('./generic-prefix-salesforce-collector.js');
|
|
8
6
|
|
|
9
7
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
matches: (value) => genericSalesforceCollector.matches(value),
|
|
15
|
-
collect(value, node, state) {
|
|
16
|
-
if (!validSiteImports.has(value)) {
|
|
17
|
-
throw new errors.MetadataCollectionError([
|
|
18
|
-
utils.createReferenceDiagnostic(node.source, state.fileName, errors.Errors.INVALID_SITE_ID, [
|
|
19
|
-
value,
|
|
20
|
-
]),
|
|
21
|
-
]);
|
|
22
|
-
}
|
|
23
|
-
return genericSalesforceCollector.collect(value, node, state);
|
|
24
|
-
},
|
|
25
|
-
};
|
|
8
|
+
var siteCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'site',
|
|
10
|
+
allowlist: ['activeLanguages', 'Id'],
|
|
11
|
+
});
|
|
26
12
|
|
|
27
13
|
exports["default"] = siteCollector;
|
|
28
14
|
//# sourceMappingURL=site.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/site.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"site.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/site.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,oBAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC;AACvC,CAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('../utils.js');
|
|
6
|
+
|
|
7
|
+
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
+
var userPermissionCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'userPermission',
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
exports["default"] = userPermissionCollector;
|
|
13
|
+
//# sourceMappingURL=user-permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-permission.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/user-permission.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,8BAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,gBAAgB;AACzB,CAAA,CAAC;;;;"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export default userCollector;
|
|
1
|
+
declare const _default: import("../main").CollectionStrategy;
|
|
2
|
+
export default _default;
|
|
@@ -2,27 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var errors = require('../../../../errors/errors.js');
|
|
6
5
|
var utils = require('../utils.js');
|
|
7
|
-
var genericPrefixSalesforceCollector = require('./generic-prefix-salesforce-collector.js');
|
|
8
6
|
|
|
9
7
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
matches: (value) => genericSalesforceCollector.matches(value),
|
|
15
|
-
collect(value, node, state) {
|
|
16
|
-
if (!validUserImports.has(value)) {
|
|
17
|
-
throw new errors.MetadataCollectionError([
|
|
18
|
-
utils.createReferenceDiagnostic(node.source, state.fileName, errors.Errors.INVALID_USER_ID, [
|
|
19
|
-
value,
|
|
20
|
-
]),
|
|
21
|
-
]);
|
|
22
|
-
}
|
|
23
|
-
return genericSalesforceCollector.collect(value, node, state);
|
|
24
|
-
},
|
|
25
|
-
};
|
|
8
|
+
var userCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'user',
|
|
10
|
+
allowlist: ['Id', 'isGuest'],
|
|
11
|
+
});
|
|
26
12
|
|
|
27
13
|
exports["default"] = userCollector;
|
|
28
14
|
//# sourceMappingURL=user.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/user.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"user.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/user.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,oBAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;AAC/B,CAAA,CAAC;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils = require('../utils.js');
|
|
6
|
+
|
|
7
|
+
// Copyright (c) 2022, Salesforce, Inc.,
|
|
8
|
+
var webstoreCollector = utils.createSalesforceModuleCollector({
|
|
9
|
+
name: 'webstore',
|
|
10
|
+
allowlist: ['Id'],
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
exports["default"] = webstoreCollector;
|
|
14
|
+
//# sourceMappingURL=webstore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webstore.js","sources":["../../../../../src/script-metadata/module-references/collectors/scoped/webstore.ts"],"sourcesContent":[null],"names":["createSalesforceModuleCollector"],"mappings":";;;;;;AAAA;AAMA,wBAAeA,qCAA+B,CAAC;AAC3C,IAAA,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,CAAC,IAAI,CAAC;AACpB,CAAA,CAAC;;;;"}
|
|
@@ -3,6 +3,7 @@ import { CompilerDiagnostic, LWCErrorInfo } from '@lwc/errors';
|
|
|
3
3
|
import { NamespaceMapping } from '../../../shared/config';
|
|
4
4
|
import { State } from '../../../shared/utils';
|
|
5
5
|
import { ModuleReference, SfdcResourceType } from '../../../schema/typescript-types/script-metadata-types';
|
|
6
|
+
import { CollectionStrategy } from './main';
|
|
6
7
|
export declare const SALESFORCE_PREFIX = "@salesforce";
|
|
7
8
|
export declare function isValidImportForPrefix(prefix: string, source: string): boolean;
|
|
8
9
|
export declare function isSalesforceImport(value: string): boolean;
|
|
@@ -13,4 +14,9 @@ export declare function getModuleReference(moduleSpecifier: string, sourceNode:
|
|
|
13
14
|
export declare function assertOnlyDefaultImport(node: t.ExportAllDeclaration | t.ExportNamedDeclaration | t.ImportDeclaration, fileName: string, prefix: string): void;
|
|
14
15
|
export declare function getId(prefix: string, moduleSpecifier: string): string;
|
|
15
16
|
export declare function generateSalesforceReference(sourceNode: t.StringLiteral, moduleSpecifier: string, scoped: SfdcResourceType, id: string, namespaceMapping: NamespaceMapping, state: State): ModuleReference;
|
|
16
|
-
|
|
17
|
+
interface SalesforceModuleCollectorConfig {
|
|
18
|
+
name: SfdcResourceType;
|
|
19
|
+
allowlist?: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare function createSalesforceModuleCollector(config: SalesforceModuleCollectorConfig): CollectionStrategy;
|
|
22
|
+
export {};
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var t = require('@babel/types');
|
|
6
|
-
var errors = require('@lwc/errors');
|
|
6
|
+
var errors$1 = require('@lwc/errors');
|
|
7
7
|
var sfdcCompilerUtils = require('@lwc/sfdc-compiler-utils');
|
|
8
|
-
var utils
|
|
9
|
-
var errors
|
|
10
|
-
var utils = require('../../utils.js');
|
|
8
|
+
var utils = require('../../../shared/utils.js');
|
|
9
|
+
var errors = require('../../../errors/errors.js');
|
|
10
|
+
var utils$1 = require('../../utils.js');
|
|
11
11
|
|
|
12
12
|
function _interopNamespace(e) {
|
|
13
13
|
if (e && e.__esModule) return e;
|
|
@@ -49,7 +49,7 @@ const BACK_REF_IMPORT = '..';
|
|
|
49
49
|
const isRelativeImport = (source) => isValidImportForPrefix(RELATIVE_IMPORT, source) ||
|
|
50
50
|
isValidImportForPrefix(BACK_REF_IMPORT, source);
|
|
51
51
|
function createReferenceDiagnostic(sourceNode, fileName, errorInfo, messageArgs) {
|
|
52
|
-
return errors.generateCompilerDiagnostic(errorInfo, {
|
|
52
|
+
return errors$1.generateCompilerDiagnostic(errorInfo, {
|
|
53
53
|
messageArgs,
|
|
54
54
|
origin: {
|
|
55
55
|
filename: fileName,
|
|
@@ -64,9 +64,9 @@ function createReferenceDiagnostic(sourceNode, fileName, errorInfo, messageArgs)
|
|
|
64
64
|
}
|
|
65
65
|
function getModuleReference(moduleSpecifier, sourceNode, state, referenceType) {
|
|
66
66
|
const { fileName, namespaceMapping } = state;
|
|
67
|
-
if (utils
|
|
68
|
-
throw new errors
|
|
69
|
-
createReferenceDiagnostic(sourceNode, fileName, errors
|
|
67
|
+
if (utils.isEmpty(moduleSpecifier)) {
|
|
68
|
+
throw new errors.MetadataCollectionError([
|
|
69
|
+
createReferenceDiagnostic(sourceNode, fileName, errors.Errors.MISSING_RESOURCE_VALUE, [
|
|
70
70
|
moduleSpecifier,
|
|
71
71
|
]),
|
|
72
72
|
]);
|
|
@@ -74,13 +74,13 @@ function getModuleReference(moduleSpecifier, sourceNode, state, referenceType) {
|
|
|
74
74
|
const ref = {
|
|
75
75
|
name: moduleSpecifier,
|
|
76
76
|
type: referenceType,
|
|
77
|
-
locations: [utils.generateSourceLocation(sourceNode, utils.QUOTE_LENGTH, utils.QUOTE_LENGTH)],
|
|
77
|
+
locations: [utils$1.generateSourceLocation(sourceNode, utils$1.QUOTE_LENGTH, utils$1.QUOTE_LENGTH)],
|
|
78
78
|
id: state.generateReferenceId('ModuleReference', moduleSpecifier),
|
|
79
79
|
};
|
|
80
|
-
const namespacedModuleSpecifier = !utils
|
|
80
|
+
const namespacedModuleSpecifier = !utils.isEmptyObject(namespaceMapping)
|
|
81
81
|
? sfdcCompilerUtils.getNamespacedIdForResource(moduleSpecifier, namespaceMapping)
|
|
82
82
|
: undefined;
|
|
83
|
-
if (!utils
|
|
83
|
+
if (!utils.isUndefined(namespacedModuleSpecifier)) {
|
|
84
84
|
ref.namespacedName = namespacedModuleSpecifier;
|
|
85
85
|
}
|
|
86
86
|
return ref;
|
|
@@ -91,8 +91,8 @@ function assertOnlyDefaultImport(node, fileName, prefix) {
|
|
|
91
91
|
const source = node.source;
|
|
92
92
|
// generate error for imports only, as this is a valid scenario for re-export
|
|
93
93
|
if (node.type === 'ImportDeclaration' && hasNamedImport) {
|
|
94
|
-
throw new errors
|
|
95
|
-
errors.generateCompilerDiagnostic(errors
|
|
94
|
+
throw new errors.MetadataCollectionError([
|
|
95
|
+
errors$1.generateCompilerDiagnostic(errors.Errors.MODULES_ONLY_SUPPORT_DEFAULT_IMPORTS, {
|
|
96
96
|
messageArgs: [prefix],
|
|
97
97
|
origin: {
|
|
98
98
|
filename: fileName,
|
|
@@ -123,7 +123,7 @@ function generateSalesforceReference(sourceNode, moduleSpecifier, scoped, id, na
|
|
|
123
123
|
const ref = {
|
|
124
124
|
name: moduleSpecifier,
|
|
125
125
|
type: '@salesforce',
|
|
126
|
-
locations: [utils.generateSourceLocation(sourceNode, utils.QUOTE_LENGTH, utils.QUOTE_LENGTH)],
|
|
126
|
+
locations: [utils$1.generateSourceLocation(sourceNode, utils$1.QUOTE_LENGTH, utils$1.QUOTE_LENGTH)],
|
|
127
127
|
id: state.generateReferenceId('ModuleReference', moduleSpecifier),
|
|
128
128
|
};
|
|
129
129
|
ref.sfdcResource = {
|
|
@@ -131,34 +131,50 @@ function generateSalesforceReference(sourceNode, moduleSpecifier, scoped, id, na
|
|
|
131
131
|
id,
|
|
132
132
|
};
|
|
133
133
|
const namespacedId = createNamespacedId(moduleSpecifier, namespaceMapping);
|
|
134
|
-
if (!utils
|
|
134
|
+
if (!utils.isUndefined(namespacedId)) {
|
|
135
135
|
ref.sfdcResource.namespacedId = namespacedId;
|
|
136
136
|
}
|
|
137
137
|
return ref;
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
const
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
139
|
+
function createSalesforceModuleCollector(config) {
|
|
140
|
+
const prefix = `@salesforce/${config.name}`;
|
|
141
|
+
const allowedImports = config.allowlist
|
|
142
|
+
? new Set(config.allowlist.map((x) => `${prefix}/${x}`))
|
|
143
|
+
: null;
|
|
144
|
+
return {
|
|
145
|
+
matches(value) {
|
|
146
|
+
return value.startsWith(`${prefix}/`);
|
|
147
|
+
},
|
|
148
|
+
collect(value, node, state) {
|
|
149
|
+
const source = node.source;
|
|
150
|
+
const { fileName, namespaceMapping } = state;
|
|
151
|
+
// Check if the import is part of the allow list (if provided).
|
|
152
|
+
if (allowedImports && !allowedImports.has(value)) {
|
|
153
|
+
throw new errors.MetadataCollectionError([
|
|
154
|
+
createReferenceDiagnostic(node.source, state.fileName, errors.Errors.INVALID_MODULE_ID, [value]),
|
|
155
|
+
]);
|
|
156
|
+
}
|
|
157
|
+
assertOnlyDefaultImport(node, fileName, prefix);
|
|
158
|
+
const id = getId(prefix, value);
|
|
159
|
+
if (utils.isEmpty(id)) {
|
|
160
|
+
throw new errors.MetadataCollectionError([
|
|
161
|
+
createReferenceDiagnostic(source, fileName, errors.Errors.MISSING_RESOURCE_VALUE, [
|
|
162
|
+
value,
|
|
163
|
+
]),
|
|
164
|
+
]);
|
|
165
|
+
}
|
|
166
|
+
return generateSalesforceReference(source, value, config.name, id, namespaceMapping, state);
|
|
167
|
+
},
|
|
168
|
+
};
|
|
153
169
|
}
|
|
154
170
|
|
|
155
171
|
exports.SALESFORCE_PREFIX = SALESFORCE_PREFIX;
|
|
156
172
|
exports.assertOnlyDefaultImport = assertOnlyDefaultImport;
|
|
157
173
|
exports.createReferenceDiagnostic = createReferenceDiagnostic;
|
|
174
|
+
exports.createSalesforceModuleCollector = createSalesforceModuleCollector;
|
|
158
175
|
exports.generateSalesforceReference = generateSalesforceReference;
|
|
159
176
|
exports.getId = getId;
|
|
160
177
|
exports.getModuleReference = getModuleReference;
|
|
161
|
-
exports.getSalesforceReference = getSalesforceReference;
|
|
162
178
|
exports.isLwcReference = isLwcReference;
|
|
163
179
|
exports.isRelativeImport = isRelativeImport;
|
|
164
180
|
exports.isSalesforceImport = isSalesforceImport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/script-metadata/module-references/collectors/utils.ts"],"sourcesContent":[null],"names":["generateCompilerDiagnostic","isEmpty","MetadataCollectionError","Errors","generateSourceLocation","QUOTE_LENGTH","isEmptyObject","getNamespacedIdForResource","isUndefined","t"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/script-metadata/module-references/collectors/utils.ts"],"sourcesContent":[null],"names":["generateCompilerDiagnostic","isEmpty","MetadataCollectionError","Errors","generateSourceLocation","QUOTE_LENGTH","isEmptyObject","getNamespacedIdForResource","isUndefined","t"],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var utils = require('../../shared/utils.js');
|
|
6
|
+
var utils$1 = require('../utils.js');
|
|
5
7
|
var main = require('./collectors/main.js');
|
|
6
8
|
var accessCheck = require('./collectors/scoped/access-check.js');
|
|
7
9
|
var apex = require('./collectors/scoped/apex.js');
|
|
@@ -21,15 +23,14 @@ var resourceUrl = require('./collectors/scoped/resource-url.js');
|
|
|
21
23
|
var schema = require('./collectors/scoped/schema.js');
|
|
22
24
|
var site = require('./collectors/scoped/site.js');
|
|
23
25
|
var user = require('./collectors/scoped/user.js');
|
|
24
|
-
var
|
|
26
|
+
var userPermission = require('./collectors/scoped/user-permission.js');
|
|
25
27
|
var komaci = require('./collectors/scoped/komaci.js');
|
|
28
|
+
var webstore = require('./collectors/scoped/webstore.js');
|
|
26
29
|
var localModule = require('./collectors/local-module.js');
|
|
27
30
|
var genericModule = require('./collectors/generic-module.js');
|
|
28
|
-
var utils = require('../../shared/utils.js');
|
|
29
|
-
var utils$1 = require('../utils.js');
|
|
30
31
|
|
|
31
32
|
// Copyright (c) 2022, Salesforce, Inc.,
|
|
32
|
-
const
|
|
33
|
+
const PLATFORM_COLLECTORS = [
|
|
33
34
|
accessCheck["default"],
|
|
34
35
|
apex["default"],
|
|
35
36
|
client["default"],
|
|
@@ -48,28 +49,30 @@ const availableCollectors = [
|
|
|
48
49
|
schema["default"],
|
|
49
50
|
site["default"],
|
|
50
51
|
user["default"],
|
|
51
|
-
|
|
52
|
+
userPermission["default"],
|
|
52
53
|
localModule["default"],
|
|
53
54
|
genericModule["default"],
|
|
55
|
+
webstore["default"],
|
|
54
56
|
];
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
+
const INTERNAL_COLLECTORS = [...PLATFORM_COLLECTORS, komaci["default"]];
|
|
58
|
+
const COLLECTORS_MAP = {
|
|
59
|
+
platform: PLATFORM_COLLECTORS,
|
|
60
|
+
internal: INTERNAL_COLLECTORS,
|
|
61
|
+
};
|
|
57
62
|
function gatherModuleReference(node, state, result) {
|
|
58
63
|
const { moduleReferenceLookup } = state;
|
|
59
64
|
// The only time node.source is null is when its a ExportNamedDeclaration
|
|
60
65
|
// There are checks in place to make sure gatherModuleReference() is called only when node.source is non null
|
|
61
66
|
const source = node.source;
|
|
62
67
|
const { value: moduleSpecifier } = source;
|
|
63
|
-
let moduleReference = moduleReferenceLookup
|
|
68
|
+
let moduleReference = moduleReferenceLookup.get(moduleSpecifier);
|
|
64
69
|
if (!utils.isUndefined(moduleReference)) {
|
|
65
70
|
moduleReference.locations.push(utils$1.generateSourceLocation(source, utils$1.QUOTE_LENGTH, utils$1.QUOTE_LENGTH));
|
|
66
71
|
}
|
|
67
72
|
else {
|
|
68
|
-
moduleReference = main.collectReference(state.bundleType
|
|
69
|
-
? [...availableCollectors, ...internalOnlyCollectors]
|
|
70
|
-
: availableCollectors, node, state);
|
|
73
|
+
moduleReference = main.collectReference(COLLECTORS_MAP[state.bundleType], node, state);
|
|
71
74
|
result.moduleReferences.push(moduleReference);
|
|
72
|
-
moduleReferenceLookup
|
|
75
|
+
moduleReferenceLookup.set(moduleSpecifier, moduleReference);
|
|
73
76
|
}
|
|
74
77
|
return moduleReference;
|
|
75
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.js","sources":["../../../src/script-metadata/module-references/reference.ts"],"sourcesContent":[null],"names":["accessCheckCollector","apexCollector","clientCollector","commerceCollector","communityCollector","contentAssetUrlCollector","customPermissionsCollector","designSystemCollector","gateCollector","i18nCollector","internalCollector","labelCollector","messageChannelCollector","metricCollector","resourceUrlCollector","schemaCollector","siteCollector","userCollector","
|
|
1
|
+
{"version":3,"file":"reference.js","sources":["../../../src/script-metadata/module-references/reference.ts"],"sourcesContent":[null],"names":["accessCheckCollector","apexCollector","clientCollector","commerceCollector","communityCollector","contentAssetUrlCollector","customPermissionsCollector","designSystemCollector","gateCollector","i18nCollector","internalCollector","labelCollector","messageChannelCollector","metricCollector","resourceUrlCollector","schemaCollector","siteCollector","userCollector","userPermissionCollector","localModuleCollector","genericModuleCollector","webstoreCollector","komaciCollector","isUndefined","generateSourceLocation","QUOTE_LENGTH","collectReference"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAqCA,MAAM,mBAAmB,GAAG;IACxBA,sBAAoB;IACpBC,eAAa;IACbC,iBAAe;IACfC,mBAAiB;IACjBC,oBAAkB;IAClBC,0BAAwB;IACxBC,4BAA0B;IAC1BC,uBAAqB;IACrBC,eAAa;IACbC,eAAa;IACbC,mBAAiB;IACjBC,gBAAc;IACdC,yBAAuB;IACvBC,iBAAe;IACfC,sBAAoB;IACpBC,iBAAe;IACfC,eAAa;IACbC,eAAa;IACbC,yBAAuB;IACvBC,sBAAoB;IACpBC,wBAAsB;IACtBC,mBAAiB;CACpB,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAG,mBAAmB,EAAEC,iBAAe,CAAC,CAAC;AAEtE,MAAM,cAAc,GAAmD;AACnE,IAAA,QAAQ,EAAE,mBAAmB;AAC7B,IAAA,QAAQ,EAAE,mBAAmB;CAChC,CAAC;SAEc,qBAAqB,CACjC,IAA6E,EAC7E,KAAkB,EAClB,MAAkB,EAAA;AAElB,IAAA,MAAM,EAAE,qBAAqB,EAAE,GAAG,KAAK,CAAC;;;AAGxC,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;AAC5B,IAAA,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE1C,IAAI,eAAe,GAAG,qBAAqB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACjE,IAAA,IAAI,CAACC,iBAAW,CAAC,eAAe,CAAC,EAAE;AAC/B,QAAA,eAAe,CAAC,SAAS,CAAC,IAAI,CAACC,8BAAsB,CAAC,MAAM,EAAEC,oBAAY,EAAEA,oBAAY,CAAC,CAAC,CAAC;AAC9F,KAAA;AAAM,SAAA;AACH,QAAA,eAAe,GAAGC,qBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAClF,QAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C,QAAA,qBAAqB,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC/D,KAAA;AAED,IAAA,OAAO,eAAe,CAAC;AAC3B;;;;"}
|
|
@@ -4,7 +4,14 @@ import { UnresolvedValue, Value } from '../schema/typescript-types/script-metada
|
|
|
4
4
|
export declare function unresolved(): UnresolvedValue;
|
|
5
5
|
export declare function resolveImportSpecifierImported(imported: t.ImportSpecifier['imported']): string;
|
|
6
6
|
export declare function resolveExportSpecifierExported(imported: t.ExportSpecifier['exported']): string;
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Resolve an expression to a Value.
|
|
9
|
+
* @param expression expression to resolve
|
|
10
|
+
* @param scope scope in which the expression was found
|
|
11
|
+
* @param unresolvedIdentifiers To detect ciruclar reference in identifiers
|
|
12
|
+
* @returns Resolved value
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveExpression(expression: t.Expression, scope: Scope, unresolvedIdentifiers?: Set<t.Identifier>): Value;
|
|
8
15
|
/**
|
|
9
16
|
* Return value resolution will be returned only if the code block contains a single return statement
|
|
10
17
|
* and no other statements, except for ExpressionStatement or declarations. Such limitation is
|
|
@@ -38,22 +38,30 @@ function resolveImportSpecifierImported(imported) {
|
|
|
38
38
|
function resolveExportSpecifierExported(imported) {
|
|
39
39
|
return t__namespace.isStringLiteral(imported) ? imported.value : imported.name;
|
|
40
40
|
}
|
|
41
|
-
function resolveIdentifier(identifier, scope) {
|
|
41
|
+
function resolveIdentifier(identifier, scope, unresolvedIdentifiers) {
|
|
42
42
|
const binding = scope.getBinding(identifier.name);
|
|
43
43
|
if (utils.isUndefined(binding)) {
|
|
44
44
|
return { type: 'Undefined', value: undefined };
|
|
45
45
|
}
|
|
46
|
+
const { kind, path, identifier: bindingIdentifier } = binding;
|
|
46
47
|
// If identifier is a constant and it has a initial value
|
|
47
|
-
if (
|
|
48
|
-
if (
|
|
49
|
-
!utils.isNull(
|
|
50
|
-
!utils.isUndefined(
|
|
51
|
-
|
|
48
|
+
if (kind === 'const') {
|
|
49
|
+
if (path.node.type === 'VariableDeclarator' &&
|
|
50
|
+
!utils.isNull(path.node.init) &&
|
|
51
|
+
!utils.isUndefined(path.node.init)) {
|
|
52
|
+
// If an unresolved identifier is visited twice in the current resolution cycle, there is a circular reference
|
|
53
|
+
if (unresolvedIdentifiers.has(bindingIdentifier)) {
|
|
54
|
+
return unresolved();
|
|
55
|
+
}
|
|
56
|
+
unresolvedIdentifiers.add(bindingIdentifier);
|
|
57
|
+
const value = resolveExpression(path.node.init, scope, unresolvedIdentifiers);
|
|
58
|
+
unresolvedIdentifiers.delete(bindingIdentifier);
|
|
59
|
+
return value;
|
|
52
60
|
}
|
|
53
61
|
}
|
|
54
|
-
else if (
|
|
62
|
+
else if (kind === 'module') {
|
|
55
63
|
// If identifier is a value imported from an external module
|
|
56
|
-
const { parent, node } =
|
|
64
|
+
const { parent, node } = path;
|
|
57
65
|
if (t__namespace.isImportDeclaration(parent)) {
|
|
58
66
|
if (t__namespace.isImportSpecifier(node)) {
|
|
59
67
|
return {
|
|
@@ -187,14 +195,21 @@ function resolveTemplateLiteralExpression(templateLiteral) {
|
|
|
187
195
|
value: raw,
|
|
188
196
|
};
|
|
189
197
|
}
|
|
190
|
-
|
|
198
|
+
/**
|
|
199
|
+
* Resolve an expression to a Value.
|
|
200
|
+
* @param expression expression to resolve
|
|
201
|
+
* @param scope scope in which the expression was found
|
|
202
|
+
* @param unresolvedIdentifiers To detect ciruclar reference in identifiers
|
|
203
|
+
* @returns Resolved value
|
|
204
|
+
*/
|
|
205
|
+
function resolveExpression(expression, scope, unresolvedIdentifiers = new Set()) {
|
|
191
206
|
switch (expression.type) {
|
|
192
207
|
case 'ArrayExpression':
|
|
193
208
|
return {
|
|
194
209
|
type: 'Array',
|
|
195
210
|
value: expression.elements.map((element) => {
|
|
196
211
|
if (t__namespace.isExpression(element)) {
|
|
197
|
-
return resolveExpression(element, scope);
|
|
212
|
+
return resolveExpression(element, scope, unresolvedIdentifiers);
|
|
198
213
|
}
|
|
199
214
|
else {
|
|
200
215
|
return unresolved();
|
|
@@ -229,7 +244,7 @@ function resolveExpression(expression, scope) {
|
|
|
229
244
|
? property.key.name
|
|
230
245
|
: property.key.value;
|
|
231
246
|
if (t__namespace.isExpression(property.value)) {
|
|
232
|
-
accumulator[key] = resolveExpression(property.value, scope);
|
|
247
|
+
accumulator[key] = resolveExpression(property.value, scope, unresolvedIdentifiers);
|
|
233
248
|
}
|
|
234
249
|
else {
|
|
235
250
|
accumulator[key] = unresolved();
|
|
@@ -244,7 +259,7 @@ function resolveExpression(expression, scope) {
|
|
|
244
259
|
value: null,
|
|
245
260
|
};
|
|
246
261
|
case 'Identifier':
|
|
247
|
-
return resolveIdentifier(expression, scope);
|
|
262
|
+
return resolveIdentifier(expression, scope, unresolvedIdentifiers);
|
|
248
263
|
case 'MemberExpression':
|
|
249
264
|
return resolveMemberExpression(expression, scope);
|
|
250
265
|
case 'TemplateLiteral':
|