@atlassian/clientside-extensions-webpack-plugin 3.1.2-test8-ff872408-m663p05b → 3.1.2-test9-85e70efb

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 (149) hide show
  1. package/README.md +3 -4
  2. package/dist/cjs/ClientsideExtensionsWebpackPlugin.js +50 -59
  3. package/dist/cjs/ClientsideExtensionsWebpackPlugin.js.map +1 -1
  4. package/dist/cjs/annotations/condition.js +6 -2
  5. package/dist/cjs/annotations/condition.js.map +1 -1
  6. package/dist/cjs/annotations/default-parser.js +1 -1
  7. package/dist/cjs/annotations/default-parser.js.map +1 -1
  8. package/dist/cjs/annotations/extension-point.js.map +1 -1
  9. package/dist/cjs/annotations/index.js +2 -2
  10. package/dist/cjs/annotations/index.js.map +1 -1
  11. package/dist/cjs/annotations/key.js +1 -1
  12. package/dist/cjs/annotations/key.js.map +1 -1
  13. package/dist/cjs/annotations/label.js +2 -2
  14. package/dist/cjs/annotations/label.js.map +1 -1
  15. package/dist/cjs/annotations/link.js +2 -2
  16. package/dist/cjs/annotations/link.js.map +1 -1
  17. package/dist/cjs/annotations/page-data-provider.js +3 -1
  18. package/dist/cjs/annotations/page-data-provider.js.map +1 -1
  19. package/dist/cjs/annotations/page-decorator.js +6 -2
  20. package/dist/cjs/annotations/page-decorator.js.map +1 -1
  21. package/dist/cjs/annotations/page-title.js +3 -1
  22. package/dist/cjs/annotations/page-title.js.map +1 -1
  23. package/dist/cjs/annotations/page-url.js +6 -2
  24. package/dist/cjs/annotations/page-url.js.map +1 -1
  25. package/dist/cjs/annotations/parsers.js +10 -14
  26. package/dist/cjs/annotations/parsers.js.map +1 -1
  27. package/dist/cjs/annotations/types.js.map +1 -1
  28. package/dist/cjs/annotations/weight.js +1 -4
  29. package/dist/cjs/annotations/weight.js.map +1 -1
  30. package/dist/cjs/generator/conditions.js +2 -2
  31. package/dist/cjs/generator/conditions.js.map +1 -1
  32. package/dist/cjs/generator/entrypoint.js +5 -27
  33. package/dist/cjs/generator/entrypoint.js.map +1 -1
  34. package/dist/cjs/generator/{webpageDescriptor.js → webpage-descriptor.js} +7 -11
  35. package/dist/cjs/generator/webpage-descriptor.js.map +1 -0
  36. package/dist/cjs/generator/webpanel-descriptor.js +22 -0
  37. package/dist/cjs/generator/webpanel-descriptor.js.map +1 -0
  38. package/dist/cjs/runtime/extension-entrypoint.js +3 -4
  39. package/dist/cjs/runtime/web-page-entrypoint.js +3 -7
  40. package/dist/cjs/transform-comment.js +5 -7
  41. package/dist/cjs/transform-comment.js.map +1 -1
  42. package/dist/cjs/types.js.map +1 -1
  43. package/dist/cjs/utils.js +3 -25
  44. package/dist/cjs/utils.js.map +1 -1
  45. package/dist/tsconfig.tsbuildinfo +8282 -0
  46. package/dist/types/ClientsideExtensionsWebpackPlugin.d.ts +25 -22
  47. package/dist/types/ClientsideExtensionsWebpackPlugin.d.ts.map +1 -1
  48. package/dist/types/annotations/condition.d.ts +2 -2
  49. package/dist/types/annotations/condition.d.ts.map +1 -1
  50. package/dist/types/annotations/default-parser.d.ts +2 -2
  51. package/dist/types/annotations/default-parser.d.ts.map +1 -1
  52. package/dist/types/annotations/extension-point.d.ts +2 -2
  53. package/dist/types/annotations/extension-point.d.ts.map +1 -1
  54. package/dist/types/annotations/index.d.ts +1 -1
  55. package/dist/types/annotations/index.d.ts.map +1 -1
  56. package/dist/types/annotations/key.d.ts +2 -2
  57. package/dist/types/annotations/key.d.ts.map +1 -1
  58. package/dist/types/annotations/label.d.ts +2 -2
  59. package/dist/types/annotations/label.d.ts.map +1 -1
  60. package/dist/types/annotations/link.d.ts +2 -2
  61. package/dist/types/annotations/link.d.ts.map +1 -1
  62. package/dist/types/annotations/page-data-provider.d.ts +2 -2
  63. package/dist/types/annotations/page-data-provider.d.ts.map +1 -1
  64. package/dist/types/annotations/page-decorator.d.ts +2 -2
  65. package/dist/types/annotations/page-decorator.d.ts.map +1 -1
  66. package/dist/types/annotations/page-title.d.ts +2 -2
  67. package/dist/types/annotations/page-title.d.ts.map +1 -1
  68. package/dist/types/annotations/page-url.d.ts +2 -2
  69. package/dist/types/annotations/page-url.d.ts.map +1 -1
  70. package/dist/types/annotations/types.d.ts +2 -2
  71. package/dist/types/annotations/types.d.ts.map +1 -1
  72. package/dist/types/annotations/weight.d.ts +2 -2
  73. package/dist/types/annotations/weight.d.ts.map +1 -1
  74. package/dist/types/generator/conditions.d.ts +2 -3
  75. package/dist/types/generator/conditions.d.ts.map +1 -1
  76. package/dist/types/generator/entrypoint.d.ts +1 -1
  77. package/dist/types/generator/entrypoint.d.ts.map +1 -1
  78. package/dist/types/generator/{webpageDescriptor.d.ts → webpage-descriptor.d.ts} +3 -3
  79. package/dist/types/generator/webpage-descriptor.d.ts.map +1 -0
  80. package/dist/types/generator/webpanel-descriptor.d.ts +4 -0
  81. package/dist/types/generator/webpanel-descriptor.d.ts.map +1 -0
  82. package/dist/types/transform-comment.d.ts +2 -2
  83. package/dist/types/transform-comment.d.ts.map +1 -1
  84. package/dist/types/types.d.ts +1 -1
  85. package/dist/types/types.d.ts.map +1 -1
  86. package/dist/types/utils.d.ts +0 -6
  87. package/dist/types/utils.d.ts.map +1 -1
  88. package/jest.config.js +4 -11
  89. package/lib/ClientsideExtensionsWebpackPlugin.basic.test.ts +26 -62
  90. package/lib/ClientsideExtensionsWebpackPlugin.conditions.test.ts +60 -48
  91. package/lib/ClientsideExtensionsWebpackPlugin.metadata.test.ts +63 -45
  92. package/lib/ClientsideExtensionsWebpackPlugin.ts +53 -71
  93. package/lib/ClientsideExtensionsWebpackPlugin.webpages.test.ts +98 -57
  94. package/lib/__fixtures__/.eslintrc.js +0 -5
  95. package/lib/__fixtures__/basic/extension-2.js +2 -4
  96. package/lib/__fixtures__/basic/first.js +1 -0
  97. package/lib/__fixtures__/basic/second.js +1 -0
  98. package/lib/__fixtures__/conditions/condition-with-params.extension.js +2 -4
  99. package/lib/__fixtures__/conditions/simple-condition.extension.js +2 -4
  100. package/lib/__fixtures__/conditions/two-conditions-with-params.extension.js +2 -4
  101. package/lib/__fixtures__/metadata/$key.extension.js +9 -0
  102. package/lib/__fixtures__/metadata/attributes.extension.js +8 -0
  103. package/lib/__fixtures__/metadata/elements.extension.js +9 -0
  104. package/lib/annotations/condition.ts +4 -2
  105. package/lib/annotations/default-parser.ts +3 -3
  106. package/lib/annotations/extension-point.ts +2 -2
  107. package/lib/annotations/index.ts +1 -1
  108. package/lib/annotations/key.ts +2 -2
  109. package/lib/annotations/label.ts +2 -2
  110. package/lib/annotations/link.ts +2 -2
  111. package/lib/annotations/page-data-provider.ts +3 -2
  112. package/lib/annotations/page-decorator.ts +4 -2
  113. package/lib/annotations/page-title.ts +3 -2
  114. package/lib/annotations/page-url.ts +4 -2
  115. package/lib/annotations/types.ts +4 -4
  116. package/lib/annotations/weight.ts +3 -7
  117. package/lib/atlassian-webresource-webpack-plugin.d.ts +11 -0
  118. package/lib/generator/conditions.ts +3 -4
  119. package/lib/generator/entrypoint.ts +2 -29
  120. package/lib/generator/{webpageDescriptor.ts → webpage-descriptor.ts} +5 -10
  121. package/lib/generator/webpanel-descriptor.ts +27 -0
  122. package/lib/runtime/extension-entrypoint.js +3 -4
  123. package/lib/runtime/web-page-entrypoint.js +3 -7
  124. package/lib/transform-comment.ts +4 -9
  125. package/lib/types.ts +1 -1
  126. package/lib/utils.ts +1 -24
  127. package/lib/virtual-module-webpack-plugin.d.ts +14 -0
  128. package/package.json +19 -23
  129. package/tsconfig.json +3 -5
  130. package/dist/cjs/generator/webfragmentDescriptor.js +0 -28
  131. package/dist/cjs/generator/webfragmentDescriptor.js.map +0 -1
  132. package/dist/cjs/generator/webpageDescriptor.js.map +0 -1
  133. package/dist/cjs/generator/xml.js +0 -51
  134. package/dist/cjs/generator/xml.js.map +0 -1
  135. package/dist/cjs/tests/test-helper.js +0 -29
  136. package/dist/cjs/tests/test-helper.js.map +0 -1
  137. package/dist/types/generator/webfragmentDescriptor.d.ts +0 -10
  138. package/dist/types/generator/webfragmentDescriptor.d.ts.map +0 -1
  139. package/dist/types/generator/webpageDescriptor.d.ts.map +0 -1
  140. package/dist/types/generator/xml.d.ts +0 -18
  141. package/dist/types/generator/xml.d.ts.map +0 -1
  142. package/dist/types/tests/test-helper.d.ts +0 -3
  143. package/dist/types/tests/test-helper.d.ts.map +0 -1
  144. package/lib/__fixtures__/metadata/key_replacement_test.extension.js +0 -10
  145. package/lib/generator/webfragmentDescriptor.ts +0 -30
  146. package/lib/generator/xml.ts +0 -72
  147. package/lib/runtime/.eslintrc.js +0 -7
  148. package/lib/tests/test-helper.ts +0 -29
  149. package/tsconfig.all.json +0 -6
package/README.md CHANGED
@@ -2,8 +2,7 @@
2
2
 
3
3
  ## Webpack plugin
4
4
 
5
- A webpack plugin to facilitate the consumption of client-side extensions using webpack. It will read comment annotations to create the
6
- necessary web-fragments XML declarations for plugin devs.
5
+ A webpack plugin to faciliate the consumption of client-side extensions using webpack. It will read comment annotations to create the
6
+ necesary web-fragments XML declarations for plugin devs.
7
7
 
8
- Refer to the [official webpack plugin documentation](https://developer.atlassian.com/server/framework/clientside-extensions/reference/webpack-plugin/webpack-plugin/)
9
- for more information.
8
+ Refer to the [official documentation](https://developer.atlassian.com/server/framework/clientside-extensions) for more information.
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  const tslib_1 = require("tslib");
3
- const fs_1 = (0, tslib_1.__importDefault)(require("fs"));
4
- const path_1 = (0, tslib_1.__importDefault)(require("path"));
5
- const glob_1 = require("glob");
6
- const kebabCase_1 = (0, tslib_1.__importDefault)(require("lodash/kebabCase"));
3
+ const fs_1 = tslib_1.__importDefault(require("fs"));
4
+ const path_1 = tslib_1.__importDefault(require("path"));
5
+ // TODO: SFP-157: Remove me once we fix the issue with Pipelines and docker environment that is using Node 10
6
+ require("ts-polyfill/lib/es2019-object");
7
+ const glob_1 = tslib_1.__importDefault(require("glob"));
8
+ const kebabCase_1 = tslib_1.__importDefault(require("lodash/kebabCase"));
7
9
  const pretty_data_1 = require("pretty-data");
8
- const webpack_virtual_modules_1 = (0, tslib_1.__importDefault)(require("webpack-virtual-modules"));
9
- const transform_comment_1 = (0, tslib_1.__importDefault)(require("./transform-comment"));
10
- const annotations_1 = (0, tslib_1.__importDefault)(require("./annotations"));
11
- const webfragmentDescriptor_1 = (0, tslib_1.__importDefault)(require("./generator/webfragmentDescriptor"));
12
- const webpageDescriptor_1 = (0, tslib_1.__importStar)(require("./generator/webpageDescriptor"));
10
+ const virtual_module_webpack_plugin_1 = tslib_1.__importDefault(require("virtual-module-webpack-plugin"));
11
+ const transform_comment_1 = tslib_1.__importDefault(require("./transform-comment"));
12
+ const annotations_1 = tslib_1.__importDefault(require("./annotations"));
13
+ const webpanel_descriptor_1 = tslib_1.__importDefault(require("./generator/webpanel-descriptor"));
14
+ const webpage_descriptor_1 = tslib_1.__importStar(require("./generator/webpage-descriptor"));
13
15
  const entrypoint_1 = require("./generator/entrypoint");
14
16
  const utils_1 = require("./utils");
15
- const conditions_1 = (0, tslib_1.__importDefault)(require("./generator/conditions"));
16
- class ClientsideExtensionsWebpackPlugin {
17
+ const conditions_1 = tslib_1.__importDefault(require("./generator/conditions"));
18
+ module.exports = class ClientsideExtensionsWebpackPlugin {
17
19
  constructor(options = {}) {
18
20
  if (!options.pattern) {
19
21
  throw new Error('No pattern was specified to match clientside extensions');
@@ -21,14 +23,9 @@ class ClientsideExtensionsWebpackPlugin {
21
23
  this.outputFilename = options.xmlDescriptors;
22
24
  this.pattern = options.pattern;
23
25
  this.cwd = options.cwd || process.cwd();
24
- const ignore = options.ignore || ['**/node_modules/**', 'build/**', 'target/**'];
25
- (0, utils_1.debugLog)(`cwd: ${this.cwd}`);
26
- const globFoundFiles = ClientsideExtensionsWebpackPlugin.findFilesByPattern(this.pattern, this.cwd, ignore);
27
- (0, utils_1.debugLog)(`Glob found (with the pattern: ${this.pattern}) these files: ${globFoundFiles}`);
28
- this.manifests = globFoundFiles
29
- .map((file) => ClientsideExtensionsWebpackPlugin.parseManifestFromComment(file, this.cwd))
30
- .filter(utils_1.isNotNull);
31
- (0, utils_1.debugLog)(`Found the following manifests ${JSON.stringify(this.manifests)}`);
26
+ this.manifests = ClientsideExtensionsWebpackPlugin.findFilesByPattern(this.pattern, this.cwd)
27
+ .map(file => ClientsideExtensionsWebpackPlugin.parseManifestFromComment(file, this.cwd))
28
+ .filter(Boolean);
32
29
  }
33
30
  generateEntrypoints() {
34
31
  return this.manifests.reduce((agg, manifest) => {
@@ -39,7 +36,7 @@ class ClientsideExtensionsWebpackPlugin {
39
36
  }
40
37
  apply(compiler) {
41
38
  const wrmOptions = ClientsideExtensionsWebpackPlugin.getWrmWebpackPluginOptions(compiler);
42
- const extensionsOptions = this.manifests.map((manifest) => {
39
+ const extensionsOptions = this.manifests.map(manifest => {
43
40
  return ClientsideExtensionsWebpackPlugin.manifestToPluginOptions(wrmOptions.pluginKey, manifest);
44
41
  });
45
42
  // side effect
@@ -48,32 +45,29 @@ class ClientsideExtensionsWebpackPlugin {
48
45
  ClientsideExtensionsWebpackPlugin.addDataProvidersToEntrypoints(extensionsOptions, wrmOptions);
49
46
  // side effect
50
47
  ClientsideExtensionsWebpackPlugin.addConditionToEntrypoint(extensionsOptions, wrmOptions);
51
- const virtualModules = extensionsOptions.reduce((agg, extensionOption) => {
52
- const fileName = ClientsideExtensionsWebpackPlugin.getFilenameForEntry(extensionOption.id);
53
- agg[fileName] = (0, entrypoint_1.generateEntrypointCode)(extensionOption);
54
- return agg;
55
- }, {});
56
- new webpack_virtual_modules_1.default(virtualModules).apply(compiler);
57
- compiler.hooks.compilation.tap('Tap compilation for XML generation', (compilation) => {
58
- const webfragmentDescriptors = extensionsOptions.map((extensionOption) => (0, webfragmentDescriptor_1.default)(extensionOption));
59
- const webpageDescriptors = extensionsOptions.map((extensionOption) => (0, webpageDescriptor_1.default)(extensionOption));
60
- const descriptors = [...webfragmentDescriptors, ...webpageDescriptors].join('');
48
+ extensionsOptions.forEach(extensionOption => {
49
+ new virtual_module_webpack_plugin_1.default({
50
+ moduleName: ClientsideExtensionsWebpackPlugin.getFilenameForEntry(extensionOption.id),
51
+ contents: entrypoint_1.generateEntrypointCode(extensionOption),
52
+ }).apply(compiler);
53
+ });
54
+ compiler.hooks.emit.tapAsync('Generate clientside-extension XML', (compilation, callback) => {
55
+ const webpanelDescriptors = extensionsOptions.map(extensionOption => webpanel_descriptor_1.default(extensionOption));
56
+ const webpageDescriptors = extensionsOptions.map(extensionOption => webpage_descriptor_1.default(extensionOption));
57
+ const descriptors = [...webpanelDescriptors, ...webpageDescriptors].join('');
61
58
  const xmlDescriptors = pretty_data_1.pd.xml(`<clientside-extension>${descriptors}</clientside-extension>`);
62
59
  const xmlDescriptorDirname = path_1.default.dirname(path_1.default.relative(compiler.options.output.path || '', this.outputFilename || wrmOptions.xmlDescriptors));
63
60
  const xmlDescriptorFilename = path_1.default.basename(this.outputFilename || 'wr-generated-clientside-extensions.xml');
64
61
  const webpanelXmlDescriptorFilename = path_1.default.join(xmlDescriptorDirname, xmlDescriptorFilename);
65
- compilation.hooks.additionalAssets.tap('Generate clientside-extension XML', () => {
66
- compilation.assets[webpanelXmlDescriptorFilename] = {
67
- source: () => Buffer.from(xmlDescriptors),
68
- size: () => Buffer.byteLength(xmlDescriptors),
69
- };
70
- });
62
+ compilation.assets[webpanelXmlDescriptorFilename] = {
63
+ source: () => Buffer.from(xmlDescriptors),
64
+ size: () => Buffer.byteLength(xmlDescriptors),
65
+ };
66
+ callback();
71
67
  });
72
68
  }
73
69
  static addContextToEntrypoints(extensionOptions, wrmOptions) {
74
- extensionOptions
75
- .filter((extensionOption) => !(0, entrypoint_1.isPageExtension)(extensionOption))
76
- .forEach((extensionOption) => {
70
+ extensionOptions.forEach(extensionOption => {
77
71
  const { contextMap } = wrmOptions;
78
72
  const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);
79
73
  const context = extensionOption.extensionPoint;
@@ -82,28 +76,26 @@ class ClientsideExtensionsWebpackPlugin {
82
76
  }
83
77
  static addDataProvidersToEntrypoints(extensionOptions, wrmOptions) {
84
78
  extensionOptions
85
- .filter((extensionOption) => Boolean(extensionOption.pageDataProvider))
86
- .forEach((extensionOption) => {
79
+ .filter(extensionOption => Boolean(extensionOption.pageDataProvider))
80
+ .forEach(extensionOption => {
87
81
  const { dataProvidersMap } = wrmOptions;
88
82
  const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);
89
83
  const dataProvider = {
90
- key: webpageDescriptor_1.PAGE_DATA_PROVIDER_DATA_KEY,
84
+ key: webpage_descriptor_1.PAGE_DATA_PROVIDER_DATA_KEY,
91
85
  class: extensionOption.pageDataProvider,
92
86
  };
93
87
  dataProvidersMap.set(entrypointId, [dataProvider]);
94
88
  });
95
89
  }
96
90
  static addConditionToEntrypoint(extensionOptions, wrmOptions) {
97
- // eslint-disable-next-line @typescript-eslint/no-shadow
98
91
  const hasCondition = (extensionOptions) => Boolean(extensionOptions.condition);
99
- // eslint-disable-next-line @typescript-eslint/no-shadow
100
- const isNotPageExtension = (extensionOptions) => !(0, entrypoint_1.isPageExtension)(extensionOptions);
92
+ const isNotPageExtension = (extensionOptions) => !entrypoint_1.isPageExtension(extensionOptions);
101
93
  extensionOptions
102
94
  .filter(hasCondition)
103
95
  .filter(isNotPageExtension)
104
- .forEach((extensionOption) => {
96
+ .forEach(extensionOption => {
105
97
  const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);
106
- const conditionMap = (0, conditions_1.default)(extensionOption.condition);
98
+ const conditionMap = conditions_1.default(extensionOption.condition);
107
99
  const conditionMapPluginOption = wrmOptions.conditionMap;
108
100
  conditionMapPluginOption.set(entrypointId, conditionMap);
109
101
  });
@@ -114,9 +106,8 @@ class ClientsideExtensionsWebpackPlugin {
114
106
  filePath,
115
107
  };
116
108
  const annotations = {};
117
- const entries = Object.entries(annotations_1.default);
118
- for (const [annotationKey, annotationParser] of entries) {
119
- const rawAnnotation = (0, utils_1.getKeyValue)(rawAnnotations, annotationKey);
109
+ for (const [annotationKey, annotationParser] of Object.entries(annotations_1.default)) {
110
+ const rawAnnotation = utils_1.getKeyValue(rawAnnotations, annotationKey);
120
111
  const newAnnotations = annotationParser(rawAnnotation, rawAnnotations, parserOptions);
121
112
  if (newAnnotations !== null) {
122
113
  Object.assign(annotations, newAnnotations);
@@ -127,29 +118,30 @@ class ClientsideExtensionsWebpackPlugin {
127
118
  filePath,
128
119
  ...annotations,
129
120
  };
130
- (0, utils_1.debugLog)(`Generated manifest: ${JSON.stringify(manifest)}`);
131
121
  return manifest;
132
122
  }
133
123
  static parseManifestFromComment(file, cwd) {
134
124
  const fileContent = fs_1.default.readFileSync(file, 'utf8');
135
- const annotations = (0, transform_comment_1.default)(fileContent);
125
+ const annotations = transform_comment_1.default(fileContent);
136
126
  if (!annotations) {
137
127
  console.warn(`Client-side Extension: The file: "${file}" does not contain meta comments. Skipping XML-descriptor generation.`);
138
128
  return null;
139
129
  }
140
130
  return ClientsideExtensionsWebpackPlugin.transformAnnotationsIntoManifest(annotations, file, cwd);
141
131
  }
142
- static findFilesByPattern(pattern, cwd, ignore) {
143
- return glob_1.glob.sync(pattern, { absolute: true, cwd, ignore, dotRelative: true });
132
+ static findFilesByPattern(pattern, cwd) {
133
+ return glob_1.default.sync(pattern, { absolute: true, cwd });
144
134
  }
145
135
  static getWrmWebpackPluginOptions(compiler) {
146
136
  const { plugins } = compiler.options;
147
137
  if (!plugins) {
148
138
  throw new Error(`Something went mighty wrong. Can't find any plugins in webpack`);
149
139
  }
150
- const wrmPlugin = plugins.find((p) => p.constructor.name === 'WrmPlugin');
140
+ const wrmPlugin = plugins.find(p => p.constructor.name === 'WrmPlugin');
151
141
  if (!wrmPlugin) {
152
- throw new Error(`Can't find the WrmPlugin. Make sure you are using this plugin only in conjunction with the atlassian-webresource-webpack-plugin`);
142
+ throw new Error(
143
+ // eslint-disable-next-line max-len
144
+ `Can't find the WrmPlugin. Make sure you are using this plugin only in conjunction with the atlassian-webresource-webpack-plugin`);
153
145
  }
154
146
  return wrmPlugin.options;
155
147
  }
@@ -167,8 +159,7 @@ class ClientsideExtensionsWebpackPlugin {
167
159
  };
168
160
  }
169
161
  static getIdFromManifestKey(key) {
170
- return (0, kebabCase_1.default)(key);
162
+ return kebabCase_1.default(key);
171
163
  }
172
- }
173
- module.exports = ClientsideExtensionsWebpackPlugin;
164
+ };
174
165
  //# sourceMappingURL=ClientsideExtensionsWebpackPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientsideExtensionsWebpackPlugin.js","sourceRoot":"","sources":["../../lib/ClientsideExtensionsWebpackPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport type { Compilation, Compiler, WebpackPluginInstance } from 'webpack';\nimport { glob } from 'glob';\nimport kebabCase from 'lodash/kebabCase';\nimport { pd as PrettyData } from 'pretty-data';\nimport VirtualModulePlugin from 'webpack-virtual-modules';\nimport transformComment from './transform-comment';\nimport type { AnnotationKey, AnnotationParserFunction, AnnotationParserOptions, Annotations, RawAnnotations } from './annotations';\nimport annotationsParsers from './annotations';\n\nimport generateWebfragmentDescriptor from './generator/webfragmentDescriptor';\nimport generateWebpageDescriptor, { PAGE_DATA_PROVIDER_DATA_KEY } from './generator/webpageDescriptor';\nimport { generateEntrypointCode, isPageExtension } from './generator/entrypoint';\n\nimport type { ClientsideExtensionsManifest, ClientsideExtensionsOptions, DataProvider, IWrmPluginOptions } from './types';\nimport { debugLog, getKeyValue, isNotNull } from './utils';\n\nimport transformConditionToConditionMapObject from './generator/conditions';\n\n// Infer the type \"Source\" which is not exposed by Webpack\ntype Asset = Compilation['assets'] extends Record<string, infer S> ? S : never;\n\ninterface IClientsideExtensionsPluginOptions {\n pattern?: string;\n cwd?: string;\n xmlDescriptors?: string;\n ignore?: string[];\n}\n\nclass ClientsideExtensionsWebpackPlugin {\n private readonly pattern: string;\n\n private readonly cwd: string;\n\n private readonly outputFilename?: string;\n\n private manifests: ClientsideExtensionsManifest[];\n\n constructor(options: IClientsideExtensionsPluginOptions = {}) {\n if (!options.pattern) {\n throw new Error('No pattern was specified to match clientside extensions');\n }\n\n this.outputFilename = options.xmlDescriptors;\n this.pattern = options.pattern;\n this.cwd = options.cwd || process.cwd();\n const ignore = options.ignore || ['**/node_modules/**', 'build/**', 'target/**'];\n\n debugLog(`cwd: ${this.cwd}`);\n\n const globFoundFiles = ClientsideExtensionsWebpackPlugin.findFilesByPattern(this.pattern, this.cwd, ignore);\n\n debugLog(`Glob found (with the pattern: ${this.pattern}) these files: ${globFoundFiles}`);\n\n this.manifests = globFoundFiles\n .map((file) => ClientsideExtensionsWebpackPlugin.parseManifestFromComment(file, this.cwd))\n .filter(isNotNull);\n\n debugLog(`Found the following manifests ${JSON.stringify(this.manifests)}`);\n }\n\n public generateEntrypoints() {\n return this.manifests.reduce((agg, manifest) => {\n const id = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(manifest.key);\n agg[id] = ClientsideExtensionsWebpackPlugin.getFilenameForEntry(id);\n\n return agg;\n }, {} as { [key: string]: string });\n }\n\n apply(compiler: Compiler) {\n const wrmOptions = ClientsideExtensionsWebpackPlugin.getWrmWebpackPluginOptions(compiler);\n\n const extensionsOptions = this.manifests.map((manifest) => {\n return ClientsideExtensionsWebpackPlugin.manifestToPluginOptions(wrmOptions.pluginKey, manifest);\n });\n\n // side effect\n ClientsideExtensionsWebpackPlugin.addContextToEntrypoints(extensionsOptions, wrmOptions);\n\n // side effect\n ClientsideExtensionsWebpackPlugin.addDataProvidersToEntrypoints(extensionsOptions, wrmOptions);\n\n // side effect\n ClientsideExtensionsWebpackPlugin.addConditionToEntrypoint(extensionsOptions, wrmOptions);\n\n const virtualModules = extensionsOptions.reduce((agg, extensionOption) => {\n const fileName = ClientsideExtensionsWebpackPlugin.getFilenameForEntry(extensionOption.id);\n agg[fileName] = generateEntrypointCode(extensionOption);\n return agg;\n }, {} as Record<string, string>);\n new VirtualModulePlugin(virtualModules).apply(compiler);\n\n compiler.hooks.compilation.tap('Tap compilation for XML generation', (compilation) => {\n const webfragmentDescriptors = extensionsOptions.map((extensionOption) => generateWebfragmentDescriptor(extensionOption));\n const webpageDescriptors = extensionsOptions.map((extensionOption) => generateWebpageDescriptor(extensionOption));\n\n const descriptors = [...webfragmentDescriptors, ...webpageDescriptors].join('');\n const xmlDescriptors = PrettyData.xml(`<clientside-extension>${descriptors}</clientside-extension>`);\n\n const xmlDescriptorDirname = path.dirname(\n path.relative(compiler.options.output.path || '', this.outputFilename || wrmOptions.xmlDescriptors),\n );\n const xmlDescriptorFilename = path.basename(this.outputFilename || 'wr-generated-clientside-extensions.xml');\n const webpanelXmlDescriptorFilename = path.join(xmlDescriptorDirname, xmlDescriptorFilename);\n\n compilation.hooks.additionalAssets.tap('Generate clientside-extension XML', () => {\n compilation.assets[webpanelXmlDescriptorFilename] = {\n source: () => Buffer.from(xmlDescriptors),\n size: () => Buffer.byteLength(xmlDescriptors),\n } as Asset;\n });\n });\n }\n\n private static addContextToEntrypoints(extensionOptions: ClientsideExtensionsOptions[], wrmOptions: IWrmPluginOptions) {\n extensionOptions\n .filter((extensionOption) => !isPageExtension(extensionOption))\n .forEach((extensionOption) => {\n const { contextMap } = wrmOptions;\n const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);\n const context = extensionOption.extensionPoint;\n\n contextMap.set(entrypointId, [context]);\n });\n }\n\n private static addDataProvidersToEntrypoints(extensionOptions: ClientsideExtensionsOptions[], wrmOptions: IWrmPluginOptions) {\n extensionOptions\n .filter((extensionOption) => Boolean(extensionOption.pageDataProvider))\n .forEach((extensionOption) => {\n const { dataProvidersMap } = wrmOptions;\n const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);\n const dataProvider: DataProvider = {\n key: PAGE_DATA_PROVIDER_DATA_KEY,\n class: extensionOption.pageDataProvider!,\n };\n\n dataProvidersMap.set(entrypointId, [dataProvider]);\n });\n }\n\n private static addConditionToEntrypoint(extensionOptions: ClientsideExtensionsOptions[], wrmOptions: IWrmPluginOptions) {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const hasCondition = (extensionOptions: ClientsideExtensionsOptions) => Boolean(extensionOptions.condition);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const isNotPageExtension = (extensionOptions: ClientsideExtensionsOptions) => !isPageExtension(extensionOptions);\n\n extensionOptions\n .filter(hasCondition)\n .filter(isNotPageExtension)\n .forEach((extensionOption) => {\n const entrypointId = ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(extensionOption.key);\n const conditionMap = transformConditionToConditionMapObject(extensionOption.condition!);\n\n const conditionMapPluginOption = wrmOptions.conditionMap as Map<string, object>;\n\n conditionMapPluginOption.set(entrypointId, conditionMap);\n });\n }\n\n private static transformAnnotationsIntoManifest(\n rawAnnotations: RawAnnotations,\n filePath: string,\n cwd: string,\n ): ClientsideExtensionsManifest {\n const parserOptions: AnnotationParserOptions = {\n cwd,\n filePath,\n };\n\n const annotations = {} as Annotations;\n const entries = Object.entries(annotationsParsers) as [[AnnotationKey, AnnotationParserFunction]];\n\n for (const [annotationKey, annotationParser] of entries) {\n const rawAnnotation = getKeyValue(rawAnnotations, annotationKey);\n const newAnnotations = annotationParser(rawAnnotation, rawAnnotations, parserOptions);\n\n if (newAnnotations !== null) {\n Object.assign(annotations, newAnnotations);\n }\n }\n\n const manifest: ClientsideExtensionsManifest = {\n id: ClientsideExtensionsWebpackPlugin.getIdFromManifestKey(annotations.key),\n filePath,\n ...annotations,\n };\n\n debugLog(`Generated manifest: ${JSON.stringify(manifest)}`);\n\n return manifest;\n }\n\n private static parseManifestFromComment(file: string, cwd: string): ClientsideExtensionsManifest | null {\n const fileContent = fs.readFileSync(file, 'utf8');\n const annotations = transformComment(fileContent);\n\n if (!annotations) {\n console.warn(`Client-side Extension: The file: \"${file}\" does not contain meta comments. Skipping XML-descriptor generation.`);\n return null;\n }\n\n return ClientsideExtensionsWebpackPlugin.transformAnnotationsIntoManifest(annotations, file, cwd);\n }\n\n private static findFilesByPattern(pattern: string, cwd: string, ignore?: string[]) {\n return glob.sync(pattern, { absolute: true, cwd, ignore, dotRelative: true });\n }\n\n private static getWrmWebpackPluginOptions(compiler: Compiler): IWrmPluginOptions {\n const { plugins } = compiler.options;\n if (!plugins) {\n throw new Error(`Something went mighty wrong. Can't find any plugins in webpack`);\n }\n const wrmPlugin = plugins.find((p) => p.constructor.name === 'WrmPlugin');\n\n if (!wrmPlugin) {\n throw new Error(\n `Can't find the WrmPlugin. Make sure you are using this plugin only in conjunction with the atlassian-webresource-webpack-plugin`,\n );\n }\n\n return (wrmPlugin as WebpackPluginInstance & { options: IWrmPluginOptions }).options;\n }\n\n private static getFilenameForEntry(manifestId: string) {\n return `./generated-clientside-extension/${manifestId}.js`;\n }\n\n private static manifestToPluginOptions(pluginKey: string, manifest: ClientsideExtensionsManifest): ClientsideExtensionsOptions {\n const { id, key } = manifest;\n const resourceKey = `entrypoint-${id}`;\n\n return {\n ...manifest,\n pluginKey,\n entryPoint: resourceKey,\n fullyQualifiedNamespace: `${pluginKey}:${key}`,\n };\n }\n\n private static getIdFromManifestKey(key: string) {\n return kebabCase(key);\n }\n}\n\nexport = ClientsideExtensionsWebpackPlugin;\n"]}
1
+ {"version":3,"file":"ClientsideExtensionsWebpackPlugin.js","sourceRoot":"","sources":["../../lib/ClientsideExtensionsWebpackPlugin.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ANNOTATION_KEY = 'condition';
4
4
  const parseConditionComment = (conditionComment, filePath) => {
5
5
  if (!conditionComment) {
6
- throw new Error(`Client-side Extensions: Empty condition specified in file ${filePath}. Please ensure to specify a valid condition class or remove the @${ANNOTATION_KEY} annotation`);
6
+ throw new Error(
7
+ // eslint-disable-next-line max-len
8
+ `Client-side Extensions: Empty condition specified in file ${filePath}. Please ensure to specify a valid condition class or remove the @${ANNOTATION_KEY} annotation`);
7
9
  }
8
10
  const found = conditionComment.match(/([^\s]+)\s(.+)/);
9
11
  if (found === null) {
10
- throw new Error(`Client-side Extensions: Invalid condition specified in file ${filePath}. Please verify the @${ANNOTATION_KEY} annotation`);
12
+ throw new Error(
13
+ // eslint-disable-next-line max-len
14
+ `Client-side Extensions: Invalid condition specified in file ${filePath}. Please verify the @${ANNOTATION_KEY} annotation`);
11
15
  }
12
16
  const [, path, value] = found;
13
17
  return { path, value };
@@ -1 +1 @@
1
- {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../lib/annotations/condition.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,WAAW,CAAC;AAElD,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,QAAgB,EAAE,EAAE;IACzE,IAAI,CAAC,gBAAgB,EAAE;QACnB,MAAM,IAAI,KAAK,CACX,6DAA6D,QAAQ,qEAAqE,cAAc,aAAa,CACxK,CAAC;KACL;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEvD,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK,CACX,+DAA+D,QAAQ,wBAAwB,cAAc,aAAa,CAC7H,CAAC;KACL;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,eAAe,GAAuC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC9F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,MAAM,YAAY,GAAG,EAAkB,CAAC;IAExC,KAAK,MAAM,gBAAgB,IAAI,QAAQ,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAE1E,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAC9B;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,YAAY;KACjC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction, ConditionMap } from './types';\n\nconst ANNOTATION_KEY: AnnotationKey = 'condition';\n\nconst parseConditionComment = (conditionComment: string, filePath: string) => {\n if (!conditionComment) {\n throw new Error(\n `Client-side Extensions: Empty condition specified in file ${filePath}. Please ensure to specify a valid condition class or remove the @${ANNOTATION_KEY} annotation`,\n );\n }\n\n const found = conditionComment.match(/([^\\s]+)\\s(.+)/);\n\n if (found === null) {\n throw new Error(\n `Client-side Extensions: Invalid condition specified in file ${filePath}. Please verify the @${ANNOTATION_KEY} annotation`,\n );\n }\n\n const [, path, value] = found;\n return { path, value };\n};\n\nconst conditionParser: AnnotationParserFunction<string[]> = (rawValue, rawAnnotations, options) => {\n if (!rawValue) {\n return null;\n }\n\n const { filePath } = options;\n\n const conditionMap = {} as ConditionMap;\n\n for (const conditionComment of rawValue) {\n const { path, value } = parseConditionComment(conditionComment, filePath);\n\n conditionMap[path] = value;\n }\n\n return {\n [ANNOTATION_KEY]: conditionMap,\n };\n};\n\nexport default conditionParser;\n"]}
1
+ {"version":3,"file":"condition.js","sourceRoot":"","sources":["../../../lib/annotations/condition.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,WAAW,CAAC;AAElD,MAAM,qBAAqB,GAAG,CAAC,gBAAwB,EAAE,QAAgB,EAAE,EAAE;IACzE,IAAI,CAAC,gBAAgB,EAAE;QACnB,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,6DAA6D,QAAQ,qEAAqE,cAAc,aAAa,CACxK,CAAC;KACL;IAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAEvD,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,+DAA+D,QAAQ,wBAAwB,cAAc,aAAa,CAC7H,CAAC;KACL;IAED,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9B,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,eAAe,GAA6B,CAAC,QAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC9F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,MAAM,YAAY,GAAG,EAAkB,CAAC;IAExC,KAAK,MAAM,gBAAgB,IAAI,QAAQ,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,qBAAqB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAE1E,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAC9B;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,YAAY;KACjC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const getDefaultParser = (annotationKey) => {
4
- const defaultParser = (rawValue) => {
4
+ const defaultParser = rawValue => {
5
5
  if (!rawValue) {
6
6
  return null;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"default-parser.js","sourceRoot":"","sources":["../../../lib/annotations/default-parser.ts"],"names":[],"mappings":";;AAEA,MAAM,gBAAgB,GAAG,CAAI,aAA4B,EAAE,EAAE;IACzD,MAAM,aAAa,GAAgC,CAAC,QAAQ,EAAE,EAAE;QAC5D,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,IAAI,CAAC;SACf;QAED,OAAO;YACH,CAAC,aAAa,CAAC,EAAE,QAAQ;SAC5B,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\n\nconst getDefaultParser = <T>(annotationKey: AnnotationKey) => {\n const defaultParser: AnnotationParserFunction<T> = (rawValue) => {\n if (!rawValue) {\n return null;\n }\n\n return {\n [annotationKey]: rawValue,\n };\n };\n\n return defaultParser;\n};\n\nexport default getDefaultParser;\n"]}
1
+ {"version":3,"file":"default-parser.js","sourceRoot":"","sources":["../../../lib/annotations/default-parser.ts"],"names":[],"mappings":";;AAEA,MAAM,gBAAgB,GAAG,CAAC,aAA4B,EAAE,EAAE;IACtD,MAAM,aAAa,GAA6B,QAAQ,CAAC,EAAE;QACvD,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO,IAAI,CAAC;SACf;QAED,OAAO;YACH,CAAC,aAAa,CAAC,EAAE,QAAQ;SAC5B,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"extension-point.js","sourceRoot":"","sources":["../../../lib/annotations/extension-point.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,gBAAgB,CAAC;AAEvD,MAAM,oBAAoB,GAAqC,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC9F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,cAAc,aAAa,QAAQ,+BAA+B,CAAC,CAAC;KACtH;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,KAAK;KAC1B,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\n\nconst ANNOTATION_KEY: AnnotationKey = 'extensionPoint';\n\nconst extensionPointParser: AnnotationParserFunction<string> = (value, rawAnnotations, options) => {\n const { filePath } = options;\n\n if (!value) {\n throw new Error(`Client-side Extension: The @${ANNOTATION_KEY} in file \"${filePath}\" requires a non-empty value.`);\n }\n\n return {\n [ANNOTATION_KEY]: value,\n };\n};\n\nexport default extensionPointParser;\n"]}
1
+ {"version":3,"file":"extension-point.js","sourceRoot":"","sources":["../../../lib/annotations/extension-point.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,gBAAgB,CAAC;AAEvD,MAAM,oBAAoB,GAA6B,CAAC,KAAa,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC9F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,KAAK,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,cAAc,aAAa,QAAQ,+BAA+B,CAAC,CAAC;KACtH;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,KAAK;KAC1B,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const parsers = (0, tslib_1.__importStar)(require("./parsers"));
5
- (0, tslib_1.__exportStar)(require("./types"), exports);
4
+ const parsers = tslib_1.__importStar(require("./parsers"));
5
+ tslib_1.__exportStar(require("./types"), exports);
6
6
  exports.default = parsers;
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/annotations/index.ts"],"names":[],"mappings":";;;AAAA,gEAAqC;AAGrC,uDAAwB;AAExB,kBAAe,OAA4B,CAAC","sourcesContent":["import * as parsers from './parsers';\nimport type { AnnotationParsers } from './types';\n\nexport * from './types';\n\nexport default parsers as AnnotationParsers;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/annotations/index.ts"],"names":[],"mappings":";;;AAAA,2DAAqC;AAGrC,kDAAwB;AAExB,kBAAe,OAA4B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const path_1 = (0, tslib_1.__importDefault)(require("path"));
4
+ const path_1 = tslib_1.__importDefault(require("path"));
5
5
  const ANNOTATION_KEY = 'key';
6
6
  const keyParser = (rawValue, rawAnnotations, options) => {
7
7
  let key;
@@ -1 +1 @@
1
- {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../lib/annotations/key.ts"],"names":[],"mappings":";;;AAAA,6DAAwB;AAGxB,MAAM,cAAc,GAAkB,KAAK,CAAC;AAE5C,MAAM,SAAS,GAAqC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IACtF,IAAI,GAAW,CAAC;IAEhB,IAAI,QAAQ,EAAE;QACV,GAAG,GAAG,QAAQ,CAAC;KAClB;SAAM;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAClC,GAAG,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACtC;IAED,sFAAsF;IACtF,4DAA4D;IAC5D,MAAM,MAAM,GAAG,iBAAiB,CAAC;IAEjC,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KAC9C,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["import path from 'path';\nimport type { AnnotationKey, AnnotationParserFunction } from './types';\n\nconst ANNOTATION_KEY: AnnotationKey = 'key';\n\nconst keyParser: AnnotationParserFunction<string> = (rawValue, rawAnnotations, options) => {\n let key: string;\n\n if (rawValue) {\n key = rawValue;\n } else {\n const { cwd, filePath } = options;\n key = path.relative(cwd, filePath);\n }\n\n // Sanitize the key to keep only the alphanumeric characters, dashes, and underscores.\n // Keep the $ char since \"$key\" value is a reserved keyword.\n const regExp = /[^a-z0-9$_-]+/gi;\n\n return {\n [ANNOTATION_KEY]: key.replace(regExp, '__'),\n };\n};\n\nexport default keyParser;\n"]}
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../lib/annotations/key.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAGxB,MAAM,cAAc,GAAkB,KAAK,CAAC;AAE5C,MAAM,SAAS,GAA6B,CAAC,QAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IACtF,IAAI,GAAW,CAAC;IAEhB,IAAI,QAAQ,EAAE;QACV,GAAG,GAAG,QAAQ,CAAC;KAClB;SAAM;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAClC,GAAG,GAAG,cAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACtC;IAED,sFAAsF;IACtF,4DAA4D;IAC5D,MAAM,MAAM,GAAG,iBAAiB,CAAC;IAEjC,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KAC9C,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ANNOTATION_KEY = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const default_parser_1 = (0, tslib_1.__importDefault)(require("./default-parser"));
5
+ const default_parser_1 = tslib_1.__importDefault(require("./default-parser"));
6
6
  exports.ANNOTATION_KEY = 'label';
7
- exports.default = (0, default_parser_1.default)(exports.ANNOTATION_KEY);
7
+ exports.default = default_parser_1.default(exports.ANNOTATION_KEY);
8
8
  //# sourceMappingURL=label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../lib/annotations/label.ts"],"names":[],"mappings":";;;;AAAA,mFAAgD;AAGnC,QAAA,cAAc,GAAkB,OAAO,CAAC;AAErD,kBAAe,IAAA,wBAAgB,EAAS,sBAAc,CAAC,CAAC","sourcesContent":["import getDefaultParser from './default-parser';\nimport type { AnnotationKey } from './types';\n\nexport const ANNOTATION_KEY: AnnotationKey = 'label';\n\nexport default getDefaultParser<string>(ANNOTATION_KEY);\n"]}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../lib/annotations/label.ts"],"names":[],"mappings":";;;;AAAA,8EAAgD;AAGnC,QAAA,cAAc,GAAkB,OAAO,CAAC;AAErD,kBAAe,wBAAgB,CAAC,sBAAc,CAAC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ANNOTATION_KEY = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const default_parser_1 = (0, tslib_1.__importDefault)(require("./default-parser"));
5
+ const default_parser_1 = tslib_1.__importDefault(require("./default-parser"));
6
6
  exports.ANNOTATION_KEY = 'link';
7
- exports.default = (0, default_parser_1.default)(exports.ANNOTATION_KEY);
7
+ exports.default = default_parser_1.default(exports.ANNOTATION_KEY);
8
8
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../lib/annotations/link.ts"],"names":[],"mappings":";;;;AAAA,mFAAgD;AAGnC,QAAA,cAAc,GAAmC,MAAM,CAAC;AAErE,kBAAe,IAAA,wBAAgB,EAAS,sBAAc,CAAC,CAAC","sourcesContent":["import getDefaultParser from './default-parser';\nimport type { AnnotationKey } from './types';\n\nexport const ANNOTATION_KEY: Extract<AnnotationKey, 'link'> = 'link';\n\nexport default getDefaultParser<string>(ANNOTATION_KEY);\n"]}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../lib/annotations/link.ts"],"names":[],"mappings":";;;;AAAA,8EAAgD;AAGnC,QAAA,cAAc,GAAmC,MAAM,CAAC;AAErE,kBAAe,wBAAgB,CAAC,sBAAc,CAAC,CAAC"}
@@ -8,7 +8,9 @@ const pageDataProviderParser = (rawValue, rawAnnotations, options) => {
8
8
  }
9
9
  const { filePath } = options;
10
10
  if (!(page_url_1.ANNOTATION_KEY in rawAnnotations)) {
11
- throw new Error(`Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
11
+ throw new Error(
12
+ // eslint-disable-next-line max-len
13
+ `Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
12
14
  }
13
15
  const pageDataProvider = rawValue;
14
16
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"page-data-provider.js","sourceRoot":"","sources":["../../../lib/annotations/page-data-provider.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,kBAAkB,CAAC;AAEzD,MAAM,sBAAsB,GAAqC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IACnG,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CACX,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IAElC,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,gBAAgB;KACrC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\nimport { ANNOTATION_KEY as PAGE_URL_ANNOTATION_KEY } from './page-url';\n\nconst ANNOTATION_KEY: AnnotationKey = 'pageDataProvider';\n\nconst pageDataProviderParser: AnnotationParserFunction<string> = (rawValue, rawAnnotations, options) => {\n if (!rawValue) {\n return null;\n }\n\n const { filePath } = options;\n\n if (!(PAGE_URL_ANNOTATION_KEY in rawAnnotations)) {\n throw new Error(\n `Client-side Extension: The @${ANNOTATION_KEY} annotation in file \"${filePath}\" requires the usage of @${PAGE_URL_ANNOTATION_KEY} annotation. Please add the missing @${PAGE_URL_ANNOTATION_KEY} annotation to your extension.`,\n );\n }\n\n const pageDataProvider = rawValue;\n\n return {\n [ANNOTATION_KEY]: pageDataProvider,\n };\n};\n\nexport default pageDataProviderParser;\n"]}
1
+ {"version":3,"file":"page-data-provider.js","sourceRoot":"","sources":["../../../lib/annotations/page-data-provider.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,kBAAkB,CAAC;AAEzD,MAAM,sBAAsB,GAA6B,CAAC,QAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IACnG,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IAElC,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,gBAAgB;KACrC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
@@ -10,11 +10,15 @@ const pageDecoratorParser = (rawValue, rawAnnotations, options) => {
10
10
  }
11
11
  const { filePath } = options;
12
12
  if (!(page_url_1.ANNOTATION_KEY in rawAnnotations)) {
13
- throw new Error(`Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
13
+ throw new Error(
14
+ // eslint-disable-next-line max-len
15
+ `Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
14
16
  }
15
17
  const pageDecorator = rawValue;
16
18
  if (!standardPageDecorators.includes(pageDecorator)) {
17
- console.warn(`The provided value of page decorator "${pageDecorator}" in file "${filePath}" is not a standard decorator. Please ensure you want to use a custom page decorator.\n\nPlease check the documentation page: ${standardPageDecoratorsHelpUrl}`);
19
+ console.warn(
20
+ // eslint-disable-next-line max-len
21
+ `The provided value of page decorator "${pageDecorator}" in file "${filePath}" is not a standard decorator. Please ensure you want to use a custom page decorator.\n\nPlease check the documentation page: ${standardPageDecoratorsHelpUrl}`);
18
22
  }
19
23
  return {
20
24
  [ANNOTATION_KEY]: pageDecorator,
@@ -1 +1 @@
1
- {"version":3,"file":"page-decorator.js","sourceRoot":"","sources":["../../../lib/annotations/page-decorator.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,eAAe,CAAC;AAEtD,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAC5F,MAAM,6BAA6B,GAAG,+FAA+F,CAAC;AAEtI,MAAM,mBAAmB,GAAqC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAChG,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK,CACX,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC;IAE/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,aAAuB,CAAC,EAAE;QAC3D,OAAO,CAAC,IAAI,CACR,yCAAyC,aAAa,cAAc,QAAQ,iIAAiI,6BAA6B,EAAE,CAC/O,CAAC;KACL;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,aAAa;KAClC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,mBAAmB,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\nimport { ANNOTATION_KEY as PAGE_URL_ANNOTATION_KEY } from './page-url';\n\nconst ANNOTATION_KEY: AnnotationKey = 'pageDecorator';\n\nconst standardPageDecorators = ['atl.admin', 'atl.general', 'atl.popup', 'atl.userprofile'];\nconst standardPageDecoratorsHelpUrl = 'https://developer.atlassian.com/server/framework/atlassian-sdk/using-standard-page-decorators';\n\nconst pageDecoratorParser: AnnotationParserFunction<string> = (rawValue, rawAnnotations, options) => {\n if (!rawValue) {\n return null;\n }\n\n const { filePath } = options;\n\n if (!(PAGE_URL_ANNOTATION_KEY in rawAnnotations)) {\n throw new Error(\n `Client-side Extension: The @${ANNOTATION_KEY} annotation in file \"${filePath}\" requires the usage of @${PAGE_URL_ANNOTATION_KEY} annotation. Please add the missing @${PAGE_URL_ANNOTATION_KEY} annotation to your extension.`,\n );\n }\n\n const pageDecorator = rawValue;\n\n if (!standardPageDecorators.includes(pageDecorator as string)) {\n console.warn(\n `The provided value of page decorator \"${pageDecorator}\" in file \"${filePath}\" is not a standard decorator. Please ensure you want to use a custom page decorator.\\n\\nPlease check the documentation page: ${standardPageDecoratorsHelpUrl}`,\n );\n }\n\n return {\n [ANNOTATION_KEY]: pageDecorator,\n };\n};\n\nexport default pageDecoratorParser;\n"]}
1
+ {"version":3,"file":"page-decorator.js","sourceRoot":"","sources":["../../../lib/annotations/page-decorator.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,eAAe,CAAC;AAEtD,MAAM,sBAAsB,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAC5F,MAAM,6BAA6B,GAAG,+FAA+F,CAAC;AAEtI,MAAM,mBAAmB,GAA6B,CAAC,QAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAChG,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC;IAE/B,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,aAAuB,CAAC,EAAE;QAC3D,OAAO,CAAC,IAAI;QACR,mCAAmC;QACnC,yCAAyC,aAAa,cAAc,QAAQ,iIAAiI,6BAA6B,EAAE,CAC/O,CAAC;KACL;IAED,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,aAAa;KAClC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,mBAAmB,CAAC"}
@@ -8,7 +8,9 @@ const pageTitleParser = (rawValue, rawAnnotations, options) => {
8
8
  }
9
9
  if (!(page_url_1.ANNOTATION_KEY in rawAnnotations)) {
10
10
  const { filePath } = options;
11
- throw new Error(`Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
11
+ throw new Error(
12
+ // eslint-disable-next-line max-len
13
+ `Client-side Extension: The @${ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${page_url_1.ANNOTATION_KEY} annotation. Please add the missing @${page_url_1.ANNOTATION_KEY} annotation to your extension.`);
12
14
  }
13
15
  const pageDecorator = rawValue;
14
16
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"page-title.js","sourceRoot":"","sources":["../../../lib/annotations/page-title.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,WAAW,CAAC;AAElD,MAAM,eAAe,GAAqC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC5F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,MAAM,IAAI,KAAK,CACX,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC;IAE/B,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,aAAa;KAClC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\nimport { ANNOTATION_KEY as PAGE_URL_ANNOTATION_KEY } from './page-url';\n\nconst ANNOTATION_KEY: AnnotationKey = 'pageTitle';\n\nconst pageTitleParser: AnnotationParserFunction<string> = (rawValue, rawAnnotations, options) => {\n if (!rawValue) {\n return null;\n }\n\n if (!(PAGE_URL_ANNOTATION_KEY in rawAnnotations)) {\n const { filePath } = options;\n\n throw new Error(\n `Client-side Extension: The @${ANNOTATION_KEY} annotation in file \"${filePath}\" requires the usage of @${PAGE_URL_ANNOTATION_KEY} annotation. Please add the missing @${PAGE_URL_ANNOTATION_KEY} annotation to your extension.`,\n );\n }\n\n const pageDecorator = rawValue;\n\n return {\n [ANNOTATION_KEY]: pageDecorator,\n };\n};\n\nexport default pageTitleParser;\n"]}
1
+ {"version":3,"file":"page-title.js","sourceRoot":"","sources":["../../../lib/annotations/page-title.ts"],"names":[],"mappings":";;AACA,yCAAuE;AAEvE,MAAM,cAAc,GAAkB,WAAW,CAAC;AAElD,MAAM,eAAe,GAA6B,CAAC,QAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC5F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,IAAI,CAAC,CAAC,yBAAuB,IAAI,cAAc,CAAC,EAAE;QAC9C,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,+BAA+B,cAAc,wBAAwB,QAAQ,4BAA4B,yBAAuB,wCAAwC,yBAAuB,gCAAgC,CAClO,CAAC;KACL;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC;IAE/B,OAAO;QACH,CAAC,cAAc,CAAC,EAAE,aAAa;KAClC,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -17,10 +17,14 @@ const pageUrlParser = (rawValue, rawAnnotations, options) => {
17
17
  };
18
18
  const { filePath } = options;
19
19
  if (!(label_1.ANNOTATION_KEY in rawAnnotations)) {
20
- throw new Error(`Client-side Extension: The @${exports.ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${label_1.ANNOTATION_KEY} annotation. Please add the missing @${label_1.ANNOTATION_KEY} annotation to your extension.`);
20
+ throw new Error(
21
+ // eslint-disable-next-line max-len
22
+ `Client-side Extension: The @${exports.ANNOTATION_KEY} annotation in file "${filePath}" requires the usage of @${label_1.ANNOTATION_KEY} annotation. Please add the missing @${label_1.ANNOTATION_KEY} annotation to your extension.`);
21
23
  }
22
24
  if (link_1.ANNOTATION_KEY in rawAnnotations) {
23
- console.warn(`Client-side Extension: The provided @${link_1.ANNOTATION_KEY} annotation in file "${filePath}" will overwrite the default page URL. Please ensure you want to have a custom URL link.`);
25
+ console.warn(
26
+ // eslint-disable-next-line max-len
27
+ `Client-side Extension: The provided @${link_1.ANNOTATION_KEY} annotation in file "${filePath}" will overwrite the default page URL. Please ensure you want to have a custom URL link.`);
24
28
  return annotations;
25
29
  }
26
30
  const linkValue = generatePageLink(rawValue);
@@ -1 +1 @@
1
- {"version":3,"file":"page-url.js","sourceRoot":"","sources":["../../../lib/annotations/page-url.ts"],"names":[],"mappings":";;;AACA,iCAA+D;AAC/D,mCAAiE;AAEpD,QAAA,cAAc,GAAkB,SAAS,CAAC;AAEvD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;IACzC,OAAO,oBAAoB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAqC,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC1F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,WAAW,GAAG;QAChB,CAAC,sBAAc,CAAC,EAAE,QAAQ;KACL,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,sBAAoB,IAAI,cAAc,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK,CACX,+BAA+B,sBAAc,wBAAwB,QAAQ,4BAA4B,sBAAoB,wCAAwC,sBAAoB,gCAAgC,CAC5N,CAAC;KACL;IAED,IAAI,qBAAmB,IAAI,cAAc,EAAE;QACvC,OAAO,CAAC,IAAI,CACR,wCAAwC,qBAAmB,wBAAwB,QAAQ,0FAA0F,CACxL,CAAC;QAEF,OAAO,WAAW,CAAC;KACtB;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE7C,WAAW,CAAC,qBAAmB,CAAC,GAAG,SAAS,CAAC;IAE7C,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction, Annotations } from './types';\nimport { ANNOTATION_KEY as LINK_ANNOTATION_KEY } from './link';\nimport { ANNOTATION_KEY as LABEL_ANNOTATION_KEY } from './label';\n\nexport const ANNOTATION_KEY: AnnotationKey = 'pageUrl';\n\nconst LEFT_SLASH_REGEX = /^\\//;\n\nconst generatePageLink = (pageUrl: string) => {\n return `/plugins/servlet/${pageUrl.replace(LEFT_SLASH_REGEX, '')}`;\n};\n\nconst pageUrlParser: AnnotationParserFunction<string> = (rawValue, rawAnnotations, options) => {\n if (!rawValue) {\n return null;\n }\n\n const annotations = {\n [ANNOTATION_KEY]: rawValue,\n } as Partial<Annotations>;\n const { filePath } = options;\n\n if (!(LABEL_ANNOTATION_KEY in rawAnnotations)) {\n throw new Error(\n `Client-side Extension: The @${ANNOTATION_KEY} annotation in file \"${filePath}\" requires the usage of @${LABEL_ANNOTATION_KEY} annotation. Please add the missing @${LABEL_ANNOTATION_KEY} annotation to your extension.`,\n );\n }\n\n if (LINK_ANNOTATION_KEY in rawAnnotations) {\n console.warn(\n `Client-side Extension: The provided @${LINK_ANNOTATION_KEY} annotation in file \"${filePath}\" will overwrite the default page URL. Please ensure you want to have a custom URL link.`,\n );\n\n return annotations;\n }\n\n const linkValue = generatePageLink(rawValue);\n\n annotations[LINK_ANNOTATION_KEY] = linkValue;\n\n return annotations;\n};\n\nexport default pageUrlParser;\n"]}
1
+ {"version":3,"file":"page-url.js","sourceRoot":"","sources":["../../../lib/annotations/page-url.ts"],"names":[],"mappings":";;;AACA,iCAA+D;AAC/D,mCAAiE;AAEpD,QAAA,cAAc,GAAkB,SAAS,CAAC;AAEvD,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,EAAE;IACzC,OAAO,oBAAoB,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,aAAa,GAA6B,CAAC,QAAgB,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;IAC1F,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,WAAW,GAAG;QAChB,CAAC,sBAAc,CAAC,EAAE,QAAQ;KACL,CAAC;IAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,CAAC,sBAAoB,IAAI,cAAc,CAAC,EAAE;QAC3C,MAAM,IAAI,KAAK;QACX,mCAAmC;QACnC,+BAA+B,sBAAc,wBAAwB,QAAQ,4BAA4B,sBAAoB,wCAAwC,sBAAoB,gCAAgC,CAC5N,CAAC;KACL;IAED,IAAI,qBAAmB,IAAI,cAAc,EAAE;QACvC,OAAO,CAAC,IAAI;QACR,mCAAmC;QACnC,wCAAwC,qBAAmB,wBAAwB,QAAQ,0FAA0F,CACxL,CAAC;QAEF,OAAO,WAAW,CAAC;KACtB;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE7C,WAAW,CAAC,qBAAmB,CAAC,GAAG,SAAS,CAAC;IAE7C,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC"}
@@ -1,27 +1,23 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.weight = exports.pageUrl = exports.pageTitle = exports.pageDecorator = exports.link = exports.label = exports.key = exports.extensionPoint = exports.pageDataProvider = exports.condition = void 0;
7
3
  var condition_1 = require("./condition");
8
- Object.defineProperty(exports, "condition", { enumerable: true, get: function () { return __importDefault(condition_1).default; } });
4
+ Object.defineProperty(exports, "condition", { enumerable: true, get: function () { return condition_1.default; } });
9
5
  var page_data_provider_1 = require("./page-data-provider");
10
- Object.defineProperty(exports, "pageDataProvider", { enumerable: true, get: function () { return __importDefault(page_data_provider_1).default; } });
6
+ Object.defineProperty(exports, "pageDataProvider", { enumerable: true, get: function () { return page_data_provider_1.default; } });
11
7
  var extension_point_1 = require("./extension-point");
12
- Object.defineProperty(exports, "extensionPoint", { enumerable: true, get: function () { return __importDefault(extension_point_1).default; } });
8
+ Object.defineProperty(exports, "extensionPoint", { enumerable: true, get: function () { return extension_point_1.default; } });
13
9
  var key_1 = require("./key");
14
- Object.defineProperty(exports, "key", { enumerable: true, get: function () { return __importDefault(key_1).default; } });
10
+ Object.defineProperty(exports, "key", { enumerable: true, get: function () { return key_1.default; } });
15
11
  var label_1 = require("./label");
16
- Object.defineProperty(exports, "label", { enumerable: true, get: function () { return __importDefault(label_1).default; } });
12
+ Object.defineProperty(exports, "label", { enumerable: true, get: function () { return label_1.default; } });
17
13
  var link_1 = require("./link");
18
- Object.defineProperty(exports, "link", { enumerable: true, get: function () { return __importDefault(link_1).default; } });
14
+ Object.defineProperty(exports, "link", { enumerable: true, get: function () { return link_1.default; } });
19
15
  var page_decorator_1 = require("./page-decorator");
20
- Object.defineProperty(exports, "pageDecorator", { enumerable: true, get: function () { return __importDefault(page_decorator_1).default; } });
16
+ Object.defineProperty(exports, "pageDecorator", { enumerable: true, get: function () { return page_decorator_1.default; } });
21
17
  var page_title_1 = require("./page-title");
22
- Object.defineProperty(exports, "pageTitle", { enumerable: true, get: function () { return __importDefault(page_title_1).default; } });
18
+ Object.defineProperty(exports, "pageTitle", { enumerable: true, get: function () { return page_title_1.default; } });
23
19
  var page_url_1 = require("./page-url");
24
- Object.defineProperty(exports, "pageUrl", { enumerable: true, get: function () { return __importDefault(page_url_1).default; } });
20
+ Object.defineProperty(exports, "pageUrl", { enumerable: true, get: function () { return page_url_1.default; } });
25
21
  var weight_1 = require("./weight");
26
- Object.defineProperty(exports, "weight", { enumerable: true, get: function () { return __importDefault(weight_1).default; } });
22
+ Object.defineProperty(exports, "weight", { enumerable: true, get: function () { return weight_1.default; } });
27
23
  //# sourceMappingURL=parsers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../lib/annotations/parsers.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,2DAAmE;AAA1D,uIAAA,OAAO,OAAoB;AACpC,qDAA8D;AAArD,kIAAA,OAAO,OAAkB;AAClC,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AACvB,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,+BAAyC;AAAhC,6GAAA,OAAO,OAAQ;AACxB,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,2CAAoD;AAA3C,wHAAA,OAAO,OAAa;AAC7B,uCAAgD;AAAvC,oHAAA,OAAO,OAAW;AAC3B,mCAA6C;AAApC,iHAAA,OAAO,OAAU","sourcesContent":["export { default as condition } from './condition';\nexport { default as pageDataProvider } from './page-data-provider';\nexport { default as extensionPoint } from './extension-point';\nexport { default as key } from './key';\nexport { default as label } from './label';\nexport { default as link } from './link';\nexport { default as pageDecorator } from './page-decorator';\nexport { default as pageTitle } from './page-title';\nexport { default as pageUrl } from './page-url';\nexport { default as weight } from './weight';\n"]}
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../lib/annotations/parsers.ts"],"names":[],"mappings":";;AAAA,yCAAmD;AAA1C,sGAAA,OAAO,OAAa;AAC7B,2DAAmE;AAA1D,sHAAA,OAAO,OAAoB;AACpC,qDAA8D;AAArD,iHAAA,OAAO,OAAkB;AAClC,6BAAuC;AAA9B,0FAAA,OAAO,OAAO;AACvB,iCAA2C;AAAlC,8FAAA,OAAO,OAAS;AACzB,+BAAyC;AAAhC,4FAAA,OAAO,OAAQ;AACxB,mDAA4D;AAAnD,+GAAA,OAAO,OAAiB;AACjC,2CAAoD;AAA3C,uGAAA,OAAO,OAAa;AAC7B,uCAAgD;AAAvC,mGAAA,OAAO,OAAW;AAC3B,mCAA6C;AAApC,gGAAA,OAAO,OAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/annotations/types.ts"],"names":[],"mappings":"","sourcesContent":["export type ConditionMap = { [key: string]: string };\n\nexport interface RawAnnotations {\n extensionPoint: string;\n key?: string;\n condition?: string[];\n label?: string;\n link?: string;\n pageDataProvider?: string;\n pageDecorator?: string;\n pageTitle?: string;\n pageUrl?: string;\n weight?: string;\n}\n\nexport type AnnotationKey = keyof RawAnnotations;\n\nexport type MultiValueAnnotationKey = Extract<AnnotationKey, 'condition'>;\n\nexport type SingleValueAnnotationKey = Exclude<AnnotationKey, MultiValueAnnotationKey>;\n\nexport interface AnnotationParserOptions {\n filePath: string;\n cwd: string;\n}\n\nexport type AnnotationParserFunction<T = string | string[]> = (\n rawValue: T | undefined,\n rawAnnotations: RawAnnotations,\n options: AnnotationParserOptions,\n) => Partial<Annotations> | null;\n\nexport type AnnotationParsers = {\n [key in AnnotationKey]: AnnotationParserFunction;\n};\n\n/** Parsed annotations */\nexport interface Annotations {\n /** Module descriptor key e.g. `module.descriptor.key` */\n key: string;\n extensionPoint: string;\n condition?: ConditionMap;\n label?: string;\n link?: string;\n pageDataProvider?: string;\n pageDecorator?: string;\n pageTitle?: string;\n pageUrl?: string;\n weight?: number;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/annotations/types.ts"],"names":[],"mappings":""}
@@ -2,11 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ANNOTATION_KEY = 'weight';
4
4
  const weightParser = (rawValue) => {
5
- if (!rawValue) {
6
- return null;
7
- }
8
5
  const parsedWeight = parseInt(rawValue, 10);
9
- if (!Number.isNaN(parsedWeight)) {
6
+ if (rawValue && !Number.isNaN(parsedWeight)) {
10
7
  return {
11
8
  [ANNOTATION_KEY]: parsedWeight,
12
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"weight.js","sourceRoot":"","sources":["../../../lib/annotations/weight.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,QAAQ,CAAC;AAE/C,MAAM,YAAY,GAAqC,CAAC,QAAQ,EAAE,EAAE;IAChE,IAAI,CAAC,QAAQ,EAAE;QACX,OAAO,IAAI,CAAC;KACf;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QAC7B,OAAO;YACH,CAAC,cAAc,CAAC,EAAE,YAAY;SACjC,CAAC;KACL;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["import type { AnnotationKey, AnnotationParserFunction } from './types';\n\nconst ANNOTATION_KEY: AnnotationKey = 'weight';\n\nconst weightParser: AnnotationParserFunction<string> = (rawValue) => {\n if (!rawValue) {\n return null;\n }\n\n const parsedWeight = parseInt(rawValue, 10);\n\n if (!Number.isNaN(parsedWeight)) {\n return {\n [ANNOTATION_KEY]: parsedWeight,\n };\n }\n\n return null;\n};\n\nexport default weightParser;\n"]}
1
+ {"version":3,"file":"weight.js","sourceRoot":"","sources":["../../../lib/annotations/weight.ts"],"names":[],"mappings":";;AAEA,MAAM,cAAc,GAAkB,QAAQ,CAAC;AAE/C,MAAM,YAAY,GAA6B,CAAC,QAAgB,EAAE,EAAE;IAChE,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE5C,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QACzC,OAAO;YACH,CAAC,cAAc,CAAC,EAAE,YAAY;SACjC,CAAC;KACL;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}