@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.
Files changed (89) hide show
  1. package/dist/bundle-metadata.js +1 -1
  2. package/dist/errors/errors.js +1 -16
  3. package/dist/errors/errors.js.map +1 -1
  4. package/dist/schema/typescript-types/script-metadata-types.d.ts +1 -1
  5. package/dist/script-metadata/index.js +7 -1
  6. package/dist/script-metadata/index.js.map +1 -1
  7. package/dist/script-metadata/module-references/__tests__/salesforce-references/webstore.spec.d.ts +1 -0
  8. package/dist/script-metadata/module-references/collectors/generic-module.js +2 -2
  9. package/dist/script-metadata/module-references/collectors/generic-module.js.map +1 -1
  10. package/dist/script-metadata/module-references/collectors/scoped/access-check.d.ts +1 -2
  11. package/dist/script-metadata/module-references/collectors/scoped/access-check.js +4 -3
  12. package/dist/script-metadata/module-references/collectors/scoped/access-check.js.map +1 -1
  13. package/dist/script-metadata/module-references/collectors/scoped/client.d.ts +2 -3
  14. package/dist/script-metadata/module-references/collectors/scoped/client.js +4 -18
  15. package/dist/script-metadata/module-references/collectors/scoped/client.js.map +1 -1
  16. package/dist/script-metadata/module-references/collectors/scoped/commerce.d.ts +2 -3
  17. package/dist/script-metadata/module-references/collectors/scoped/commerce.js +4 -16
  18. package/dist/script-metadata/module-references/collectors/scoped/commerce.js.map +1 -1
  19. package/dist/script-metadata/module-references/collectors/scoped/community.d.ts +2 -3
  20. package/dist/script-metadata/module-references/collectors/scoped/community.js +4 -19
  21. package/dist/script-metadata/module-references/collectors/scoped/community.js.map +1 -1
  22. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.d.ts +1 -2
  23. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js +4 -3
  24. package/dist/script-metadata/module-references/collectors/scoped/content-asset-url.js.map +1 -1
  25. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.d.ts +1 -2
  26. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js +4 -3
  27. package/dist/script-metadata/module-references/collectors/scoped/custom-permissions.js.map +1 -1
  28. package/dist/script-metadata/module-references/collectors/scoped/design-system.d.ts +2 -3
  29. package/dist/script-metadata/module-references/collectors/scoped/design-system.js +4 -12
  30. package/dist/script-metadata/module-references/collectors/scoped/design-system.js.map +1 -1
  31. package/dist/script-metadata/module-references/collectors/scoped/gate.d.ts +1 -2
  32. package/dist/script-metadata/module-references/collectors/scoped/gate.js +4 -3
  33. package/dist/script-metadata/module-references/collectors/scoped/gate.js.map +1 -1
  34. package/dist/script-metadata/module-references/collectors/scoped/i18n.d.ts +1 -2
  35. package/dist/script-metadata/module-references/collectors/scoped/i18n.js +4 -3
  36. package/dist/script-metadata/module-references/collectors/scoped/i18n.js.map +1 -1
  37. package/dist/script-metadata/module-references/collectors/scoped/internal.d.ts +2 -3
  38. package/dist/script-metadata/module-references/collectors/scoped/internal.js +4 -25
  39. package/dist/script-metadata/module-references/collectors/scoped/internal.js.map +1 -1
  40. package/dist/script-metadata/module-references/collectors/scoped/label.d.ts +1 -2
  41. package/dist/script-metadata/module-references/collectors/scoped/label.js +4 -3
  42. package/dist/script-metadata/module-references/collectors/scoped/label.js.map +1 -1
  43. package/dist/script-metadata/module-references/collectors/scoped/message-channel.d.ts +1 -2
  44. package/dist/script-metadata/module-references/collectors/scoped/message-channel.js +4 -3
  45. package/dist/script-metadata/module-references/collectors/scoped/message-channel.js.map +1 -1
  46. package/dist/script-metadata/module-references/collectors/scoped/metric.d.ts +1 -2
  47. package/dist/script-metadata/module-references/collectors/scoped/metric.js +4 -3
  48. package/dist/script-metadata/module-references/collectors/scoped/metric.js.map +1 -1
  49. package/dist/script-metadata/module-references/collectors/scoped/resource-url.d.ts +1 -2
  50. package/dist/script-metadata/module-references/collectors/scoped/resource-url.js +4 -3
  51. package/dist/script-metadata/module-references/collectors/scoped/resource-url.js.map +1 -1
  52. package/dist/script-metadata/module-references/collectors/scoped/schema.d.ts +1 -2
  53. package/dist/script-metadata/module-references/collectors/scoped/schema.js +4 -3
  54. package/dist/script-metadata/module-references/collectors/scoped/schema.js.map +1 -1
  55. package/dist/script-metadata/module-references/collectors/scoped/site.d.ts +2 -3
  56. package/dist/script-metadata/module-references/collectors/scoped/site.js +4 -18
  57. package/dist/script-metadata/module-references/collectors/scoped/site.js.map +1 -1
  58. package/dist/script-metadata/module-references/collectors/scoped/user-permission.d.ts +2 -0
  59. package/dist/script-metadata/module-references/collectors/scoped/user-permission.js +13 -0
  60. package/dist/script-metadata/module-references/collectors/scoped/user-permission.js.map +1 -0
  61. package/dist/script-metadata/module-references/collectors/scoped/user.d.ts +2 -3
  62. package/dist/script-metadata/module-references/collectors/scoped/user.js +4 -18
  63. package/dist/script-metadata/module-references/collectors/scoped/user.js.map +1 -1
  64. package/dist/script-metadata/module-references/collectors/scoped/webstore.d.ts +2 -0
  65. package/dist/script-metadata/module-references/collectors/scoped/webstore.js +14 -0
  66. package/dist/script-metadata/module-references/collectors/scoped/webstore.js.map +1 -0
  67. package/dist/script-metadata/module-references/collectors/utils.d.ts +7 -1
  68. package/dist/script-metadata/module-references/collectors/utils.js +46 -30
  69. package/dist/script-metadata/module-references/collectors/utils.js.map +1 -1
  70. package/dist/script-metadata/module-references/reference.js +15 -12
  71. package/dist/script-metadata/module-references/reference.js.map +1 -1
  72. package/dist/script-metadata/resolver.d.ts +8 -1
  73. package/dist/script-metadata/resolver.js +27 -12
  74. package/dist/script-metadata/resolver.js.map +1 -1
  75. package/dist/script-metadata/utils.d.ts +1 -3
  76. package/dist/script-metadata/utils.js +1 -1
  77. package/dist/script-metadata/utils.js.map +1 -1
  78. package/dist/script-metadata/visitors/class-visitor.js +5 -8
  79. package/dist/script-metadata/visitors/class-visitor.js.map +1 -1
  80. package/dist/template-metadata/__tests__/template-ast.spec.d.ts +1 -0
  81. package/dist/template-metadata/index.js +33 -0
  82. package/dist/template-metadata/index.js.map +1 -1
  83. package/package.json +5 -5
  84. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.d.ts +0 -9
  85. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js +0 -22
  86. package/dist/script-metadata/module-references/collectors/scoped/generic-prefix-salesforce-collector.js.map +0 -1
  87. package/dist/script-metadata/module-references/collectors/scoped/user-permissions.d.ts +0 -3
  88. package/dist/script-metadata/module-references/collectors/scoped/user-permissions.js +0 -12
  89. 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 genericPrefixSalesforceCollector = require('./generic-prefix-salesforce-collector.js');
5
+ var utils = require('../utils.js');
6
6
 
7
7
  // Copyright (c) 2022, Salesforce, Inc.,
8
- const METRIC_PREFIX = '@salesforce/metric';
9
- var metricCollector = new genericPrefixSalesforceCollector["default"](METRIC_PREFIX);
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":["GenericPrefixSalesforceCollector"],"mappings":";;;;;;AAAA;AAMA,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,sBAAe,IAAIA,2CAAgC,CAAC,aAAa,CAAC;;;;"}
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;;;;"}
@@ -1,3 +1,2 @@
1
- import GenericPrefixSalesforceCollector from './generic-prefix-salesforce-collector';
2
- declare const _default: GenericPrefixSalesforceCollector;
1
+ declare const _default: import("../main").CollectionStrategy;
3
2
  export default _default;
@@ -2,11 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var genericPrefixSalesforceCollector = require('./generic-prefix-salesforce-collector.js');
5
+ var utils = require('../utils.js');
6
6
 
7
7
  // Copyright (c) 2022, Salesforce, Inc.,
8
- const RESOURCE_URL_PREFIX = '@salesforce/resourceUrl';
9
- var resourceUrlCollector = new genericPrefixSalesforceCollector["default"](RESOURCE_URL_PREFIX);
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":["GenericPrefixSalesforceCollector"],"mappings":";;;;;;AAAA;AAMA,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAEtD,2BAAe,IAAIA,2CAAgC,CAAC,mBAAmB,CAAC;;;;"}
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;;;;"}
@@ -1,3 +1,2 @@
1
- import GenericPrefixSalesforceCollector from './generic-prefix-salesforce-collector';
2
- declare const _default: GenericPrefixSalesforceCollector;
1
+ declare const _default: import("../main").CollectionStrategy;
3
2
  export default _default;
@@ -2,11 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var genericPrefixSalesforceCollector = require('./generic-prefix-salesforce-collector.js');
5
+ var utils = require('../utils.js');
6
6
 
7
7
  // Copyright (c) 2022, Salesforce, Inc.,
8
- const SCHEMA_PREFIX = '@salesforce/schema';
9
- var schemaCollector = new genericPrefixSalesforceCollector["default"](SCHEMA_PREFIX);
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":["GenericPrefixSalesforceCollector"],"mappings":";;;;;;AAAA;AAMA,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C,sBAAe,IAAIA,2CAAgC,CAAC,aAAa,CAAC;;;;"}
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
- import { CollectionStrategy } from '../main';
2
- declare const siteCollector: CollectionStrategy;
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
- const SITE_PREFIX = '@salesforce/site';
11
- const validSiteImports = new Set([`${SITE_PREFIX}/activeLanguages`, `${SITE_PREFIX}/Id`]);
12
- const genericSalesforceCollector = new genericPrefixSalesforceCollector["default"](SITE_PREFIX);
13
- const siteCollector = {
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":["GenericPrefixSalesforceCollector","MetadataCollectionError","createReferenceDiagnostic","Errors"],"mappings":";;;;;;;;AAAA;AASA,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,CAAA,EAAG,WAAW,CAAA,gBAAA,CAAkB,EAAE,CAAG,EAAA,WAAW,CAAK,GAAA,CAAA,CAAC,CAAC,CAAC;AAElG,MAAM,0BAA0B,GAAG,IAAIA,2CAAgC,CAAC,WAAW,CAAC,CAAC;AAErF,MAAM,aAAa,GAAuB;IACtC,OAAO,EAAE,CAAC,KAAK,KAAK,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7D,IAAA,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAIC,8BAAuB,CAAC;AAC9B,gBAAAC,+BAAyB,CAAC,IAAI,CAAC,MAAO,EAAE,KAAK,CAAC,QAAQ,EAAEC,aAAM,CAAC,eAAe,EAAE;oBAC5E,KAAK;iBACR,CAAC;AACL,aAAA,CAAC,CAAC;AACN,SAAA;QAED,OAAO,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACjE;;;;;"}
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,2 @@
1
+ declare const _default: import("../main").CollectionStrategy;
2
+ export default _default;
@@ -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
- import { CollectionStrategy } from '../main';
2
- declare const userCollector: CollectionStrategy;
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
- const USER_PREFIX = '@salesforce/user';
11
- const validUserImports = new Set([`${USER_PREFIX}/Id`, `${USER_PREFIX}/isGuest`]);
12
- const genericSalesforceCollector = new genericPrefixSalesforceCollector["default"](USER_PREFIX);
13
- const userCollector = {
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":["GenericPrefixSalesforceCollector","MetadataCollectionError","createReferenceDiagnostic","Errors"],"mappings":";;;;;;;;AAAA;AASA,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS,CAAC,CAAA,EAAG,WAAW,CAAA,GAAA,CAAK,EAAE,CAAG,EAAA,WAAW,CAAU,QAAA,CAAA,CAAC,CAAC,CAAC;AAE1F,MAAM,0BAA0B,GAAG,IAAIA,2CAAgC,CAAC,WAAW,CAAC,CAAC;AAErF,MAAM,aAAa,GAAuB;IACtC,OAAO,EAAE,CAAC,KAAK,KAAK,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC;AAC7D,IAAA,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,MAAM,IAAIC,8BAAuB,CAAC;AAC9B,gBAAAC,+BAAyB,CAAC,IAAI,CAAC,MAAO,EAAE,KAAK,CAAC,QAAQ,EAAEC,aAAM,CAAC,eAAe,EAAE;oBAC5E,KAAK;iBACR,CAAC;AACL,aAAA,CAAC,CAAC;AACN,SAAA;QAED,OAAO,0BAA0B,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACjE;;;;;"}
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,2 @@
1
+ declare const _default: import("../main").CollectionStrategy;
2
+ export default _default;
@@ -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
- export declare function getSalesforceReference(prefix: string, moduleSpecifier: string, node: t.ExportAllDeclaration | t.ExportNamedDeclaration | t.ImportDeclaration, state: State): ModuleReference;
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$1 = require('../../../shared/utils.js');
9
- var errors$1 = require('../../../errors/errors.js');
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$1.isEmpty(moduleSpecifier)) {
68
- throw new errors$1.MetadataCollectionError([
69
- createReferenceDiagnostic(sourceNode, fileName, errors$1.Errors.MISSING_RESOURCE_VALUE, [
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$1.isEmptyObject(namespaceMapping)
80
+ const namespacedModuleSpecifier = !utils.isEmptyObject(namespaceMapping)
81
81
  ? sfdcCompilerUtils.getNamespacedIdForResource(moduleSpecifier, namespaceMapping)
82
82
  : undefined;
83
- if (!utils$1.isUndefined(namespacedModuleSpecifier)) {
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$1.MetadataCollectionError([
95
- errors.generateCompilerDiagnostic(errors$1.Errors.MODULES_ONLY_SUPPORT_DEFAULT_IMPORTS, {
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$1.isUndefined(namespacedId)) {
134
+ if (!utils.isUndefined(namespacedId)) {
135
135
  ref.sfdcResource.namespacedId = namespacedId;
136
136
  }
137
137
  return ref;
138
138
  }
139
- function getSalesforceReference(prefix, moduleSpecifier, node, state) {
140
- const source = node.source;
141
- const { fileName, namespaceMapping } = state;
142
- assertOnlyDefaultImport(node, fileName, prefix);
143
- const scoped = prefix.substring(SALESFORCE_PREFIX.length + SLASH_LENGTH);
144
- const id = getId(prefix, moduleSpecifier);
145
- if (utils$1.isEmpty(id)) {
146
- throw new errors$1.MetadataCollectionError([
147
- createReferenceDiagnostic(source, fileName, errors$1.Errors.MISSING_RESOURCE_VALUE, [
148
- moduleSpecifier,
149
- ]),
150
- ]);
151
- }
152
- return generateSalesforceReference(source, moduleSpecifier, scoped, id, namespaceMapping, state);
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":"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"}
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 userPermissions = require('./collectors/scoped/user-permissions.js');
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 availableCollectors = [
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
- userPermissions["default"],
52
+ userPermission["default"],
52
53
  localModule["default"],
53
54
  genericModule["default"],
55
+ webstore["default"],
54
56
  ];
55
- /* module collectors that are not available on platform */
56
- const internalOnlyCollectors = [komaci["default"]];
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[moduleSpecifier];
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 === 'internal'
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[moduleSpecifier] = moduleReference;
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","userPermissionsCollector","localModuleCollector","genericModuleCollector","komaciCollector","isUndefined","generateSourceLocation","QUOTE_LENGTH","collectReference"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAkCA,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,0BAAwB;IACxBC,sBAAoB;IACpBC,wBAAsB;CACzB,CAAC;AAEF;AACA,MAAM,sBAAsB,GAAG,CAACC,iBAAe,CAAC,CAAC;SAEjC,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;AAC1C,IAAA,IAAI,eAAe,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAC7D,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,CAC9B,KAAK,CAAC,UAAU,KAAK,UAAU;AAC3B,cAAE,CAAC,GAAG,mBAAmB,EAAE,GAAG,sBAAsB,CAAC;AACrD,cAAE,mBAAmB,EACzB,IAAI,EACJ,KAAK,CACR,CAAC;AACF,QAAA,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C,QAAA,qBAAqB,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AAC5D,KAAA;AACD,IAAA,OAAO,eAAe,CAAC;AAC3B;;;;"}
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
- export declare function resolveExpression(expression: t.Expression, scope: Scope): Value;
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 (binding.kind === 'const') {
48
- if (binding.path.node.type === 'VariableDeclarator' &&
49
- !utils.isNull(binding.path.node.init) &&
50
- !utils.isUndefined(binding.path.node.init)) {
51
- return resolveExpression(binding.path.node.init, scope);
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 (binding.kind === 'module') {
62
+ else if (kind === 'module') {
55
63
  // If identifier is a value imported from an external module
56
- const { parent, node } = binding.path;
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
- function resolveExpression(expression, scope) {
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':