@fontoxml/fontoxml-development-tools 3.7.0-beta.6 → 3.8.0-beta.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 (477) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +0 -0
  2. package/{.prettierrc.js → .prettierrc.cjs} +0 -0
  3. package/bin/development-tools.js +8 -8
  4. package/index.js +4 -6
  5. package/npm-shrinkwrap.json +4790 -8570
  6. package/package.json +2 -1
  7. package/src/App.js +60 -36
  8. package/src/AssertableWritableStream.js +4 -9
  9. package/src/ConfigManager.js +3 -7
  10. package/src/EditorRepository.js +15 -16
  11. package/src/FdtCommand.js +12 -33
  12. package/src/FdtLicense.js +8 -14
  13. package/src/FdtTable.js +4 -8
  14. package/src/ModuleRegistrationApi.js +14 -12
  15. package/src/addCoreModulesToApp.js +7 -5
  16. package/src/addModulesToApp.js +46 -28
  17. package/src/createConfigFileInHomedir.js +4 -6
  18. package/src/editorVersions.js +4 -10
  19. package/src/enrichRequestObject.js +11 -7
  20. package/src/getParentDirectoryContainingFileSync.js +4 -6
  21. package/src/modules/connectors/index.js +13 -10
  22. package/src/modules/connectors/package.json +2 -1
  23. package/src/modules/connectors/src/command.build.controller.js +13 -15
  24. package/src/modules/connectors/src/command.build.js +11 -4
  25. package/src/modules/connectors/src/command.download-self-contained.controller.js +6 -8
  26. package/src/modules/connectors/src/command.download-self-contained.js +10 -3
  27. package/src/modules/connectors/src/command.init.controller.js +7 -9
  28. package/src/modules/connectors/src/command.init.js +10 -3
  29. package/src/modules/connectors/src/command.run.controller.js +14 -16
  30. package/src/modules/connectors/src/command.run.js +8 -4
  31. package/src/modules/connectors/src/command.upgrade.controller.js +7 -9
  32. package/src/modules/connectors/src/command.upgrade.js +10 -3
  33. package/src/modules/connectors/src/command.versions.controller.js +2 -4
  34. package/src/modules/connectors/src/command.versions.js +10 -3
  35. package/src/modules/connectors/src/utilities/FontoxmlConnectorsManifest.js +2 -6
  36. package/src/modules/connectors/src/utilities/cleanup.js +6 -8
  37. package/src/modules/connectors/src/utilities/constants.js +5 -3
  38. package/src/modules/connectors/src/utilities/copyWhitelistedFiles.js +4 -6
  39. package/src/modules/connectors/src/utilities/executeAndLog.js +4 -5
  40. package/src/modules/connectors/src/utilities/getVerbosityLevel.js +3 -5
  41. package/src/modules/connectors/src/utilities/getWhitelist.js +5 -7
  42. package/src/modules/connectors/src/utilities/setEntryVisibility.js +3 -14
  43. package/src/modules/connectors/src/utilities/validateInstance.js +5 -7
  44. package/src/modules/content-quality/index.js +14 -11
  45. package/src/modules/content-quality/package.json +2 -1
  46. package/src/modules/content-quality/src/command.build.controller.js +13 -15
  47. package/src/modules/content-quality/src/command.build.js +11 -4
  48. package/src/modules/content-quality/src/command.download-self-contained.controller.js +6 -8
  49. package/src/modules/content-quality/src/command.download-self-contained.js +11 -4
  50. package/src/modules/content-quality/src/command.init.controller.js +7 -9
  51. package/src/modules/content-quality/src/command.init.js +11 -4
  52. package/src/modules/content-quality/src/command.run.controller.js +13 -15
  53. package/src/modules/content-quality/src/command.run.js +8 -4
  54. package/src/modules/content-quality/src/command.upgrade.controller.js +7 -9
  55. package/src/modules/content-quality/src/command.upgrade.js +11 -4
  56. package/src/modules/content-quality/src/command.versions.controller.js +2 -4
  57. package/src/modules/content-quality/src/command.versions.js +10 -3
  58. package/src/modules/content-quality/src/utilities/FontoxmlFcqManifest.js +2 -6
  59. package/src/modules/content-quality/src/utilities/cleanup.js +6 -8
  60. package/src/modules/content-quality/src/utilities/constants.js +5 -3
  61. package/src/modules/content-quality/src/utilities/copyWhitelistedFiles.js +4 -6
  62. package/src/modules/content-quality/src/utilities/executeAndLog.js +4 -5
  63. package/src/modules/content-quality/src/utilities/getVerbosityLevel.js +3 -5
  64. package/src/modules/content-quality/src/utilities/getWhitelist.js +5 -7
  65. package/src/modules/content-quality/src/utilities/setEntryVisibility.js +3 -14
  66. package/src/modules/content-quality/src/utilities/validateInstance.js +5 -7
  67. package/src/modules/core/index.js +14 -18
  68. package/src/modules/core/package.json +2 -1
  69. package/src/modules/core/src/command.fdt.js +1 -3
  70. package/src/modules/core/src/command.license.validate.js +1 -3
  71. package/src/modules/core/src/command.module.js +6 -8
  72. package/src/modules/core/src/command.who.js +6 -4
  73. package/src/modules/core/src/precontroller.debug.js +2 -3
  74. package/src/modules/core/src/precontroller.help.js +7 -5
  75. package/src/modules/document-history/index.js +17 -8
  76. package/src/modules/document-history/instanceBuild/Dockerfile +4 -0
  77. package/src/modules/document-history/instanceDevBuild/.env +2 -0
  78. package/src/modules/document-history/instanceDevBuild/docker-compose.yml +9 -0
  79. package/src/modules/document-history/instanceTemplate/.env +7 -0
  80. package/src/modules/document-history/instanceTemplate/Configuration/sx.xml +4 -0
  81. package/src/modules/document-history/package.json +2 -1
  82. package/src/modules/document-history/src/command.build.controller.js +260 -0
  83. package/src/modules/document-history/src/command.build.js +56 -0
  84. package/src/modules/document-history/src/command.download-self-contained.controller.js +6 -8
  85. package/src/modules/document-history/src/command.download-self-contained.js +10 -3
  86. package/src/modules/document-history/src/command.init.controller.js +91 -0
  87. package/src/modules/document-history/src/command.init.js +44 -0
  88. package/src/modules/document-history/src/command.run.controller.js +444 -0
  89. package/src/modules/document-history/src/command.run.js +64 -0
  90. package/src/modules/document-history/src/command.upgrade.controller.js +52 -0
  91. package/src/modules/document-history/src/command.upgrade.js +44 -0
  92. package/src/modules/document-history/src/command.versions.controller.js +2 -4
  93. package/src/modules/document-history/src/command.versions.js +10 -3
  94. package/src/modules/document-history/src/utilities/FontoxmlFdhManifest.js +30 -0
  95. package/src/modules/document-history/src/utilities/cleanup.js +70 -0
  96. package/src/modules/document-history/src/utilities/constants.js +44 -0
  97. package/src/modules/document-history/src/utilities/copyWhitelistedFiles.js +22 -0
  98. package/src/modules/document-history/src/utilities/executeAndLog.js +63 -0
  99. package/src/modules/document-history/src/utilities/getVerbosityLevel.js +11 -0
  100. package/src/modules/document-history/src/utilities/getWhitelist.js +16 -0
  101. package/src/modules/document-history/src/utilities/setEntryVisibility.js +22 -0
  102. package/src/modules/document-history/src/utilities/validateInstance.js +29 -0
  103. package/src/modules/editor/dev-cms/configureFontoSessionMiddleware.js +1 -5
  104. package/src/modules/editor/dev-cms/configureScopeMiddleware.js +3 -5
  105. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetGetRouteHandler.js +1 -3
  106. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetPostRouteHandler.js +3 -5
  107. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetPreviewGetRouteHandler.js +1 -3
  108. package/src/modules/editor/dev-cms/connectors-cms-standard/configureBodyParserMiddleware.js +3 -5
  109. package/src/modules/editor/dev-cms/connectors-cms-standard/configureBrowsePostRouteHandler.js +1 -3
  110. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardAssetRouter.js +5 -9
  111. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardBrowseRouter.js +3 -5
  112. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardDocumentRouter.js +13 -15
  113. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardHeartbeatRouter.js +3 -5
  114. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardProxyRouter.js +7 -10
  115. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardReferenceRouter.js +5 -7
  116. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardReviewRouter.js +10 -16
  117. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardRouter.js +3 -5
  118. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDebugRouteHandler.js +2 -4
  119. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDevelopmentCmsMiddleware.js +3 -3
  120. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentCompareRouteHandler.js +2 -4
  121. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentGetRouteHandler.js +1 -3
  122. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentHistoryGetRouteHandler.js +2 -4
  123. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentLockPutRouteHandler.js +1 -5
  124. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPostRouteHandler.js +4 -4
  125. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPresearchPostRouteHandler.js +3 -7
  126. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPreviewRouteHandler.js +2 -6
  127. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPutRouteHandler.js +1 -5
  128. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentRevisionGetRouteHandler.js +2 -6
  129. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentStatePostRouteHandler.js +1 -5
  130. package/src/modules/editor/dev-cms/connectors-cms-standard/configureHeartbeatGetRouteHandler.js +1 -5
  131. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceCreatePostRouteHandler.js +2 -6
  132. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceGetPostRouteHandler.js +2 -6
  133. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceMetadataUpdatePatchRouteHandler.js +2 -4
  134. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationGetPostRouteHandler.js +4 -9
  135. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationPostRouteHandler.js +4 -8
  136. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationPutRouteHandler.js +7 -11
  137. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationReplyPostRouteHandler.js +3 -7
  138. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationReplyPutRouteHandler.js +5 -9
  139. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewStatePostRouteHandler.js +3 -8
  140. package/src/modules/editor/dev-cms/connectors-cms-standard/configureSimulatedDelayMiddleware.js +1 -3
  141. package/src/modules/editor/dev-cms/connectors-cms-standard/configureUploadMiddleware.js +4 -6
  142. package/src/modules/editor/dev-cms/connectors-cms-standard/correlationIdRepository.js +2 -2
  143. package/src/modules/editor/dev-cms/connectors-cms-standard/createMiddleware.js +25 -18
  144. package/src/modules/editor/dev-cms/connectors-cms-standard/getFileHash.js +3 -3
  145. package/src/modules/editor/dev-cms/connectors-cms-standard/referenceRepository.js +10 -3
  146. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/AnnotationDatabase.js +24 -64
  147. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/DebuggingConfiguration.js +1 -3
  148. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/EarlyReturnSymbol.js +1 -1
  149. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/Result.js +6 -14
  150. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/httpStatusCodeHelpers.js +13 -7
  151. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/mapAnnotationResult.js +2 -4
  152. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/DevelopmentCms.js +6 -6
  153. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/FileSystemStore.js +6 -6
  154. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/HistoryStore.js +7 -6
  155. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/MemoryStore.js +3 -3
  156. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/mergeItems.js +2 -2
  157. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/unmergeableRevisionList.js +1 -1
  158. package/src/modules/editor/dev-cms/connectors-dist/configureAuthMiddleware.js +5 -7
  159. package/src/modules/editor/dev-cms/connectors-dist/createMiddleware.js +4 -8
  160. package/src/modules/editor/dev-cms/connectors-health/configureConnectorsHealthRouter.js +3 -7
  161. package/src/modules/editor/dev-cms/connectors-health/configureHealthGetRouteHandler.js +1 -5
  162. package/src/modules/editor/dev-cms/connectors-health/createMiddleware.js +2 -6
  163. package/src/modules/editor/dev-cms/setupDevCms.js +17 -18
  164. package/src/modules/editor/index.js +20 -24
  165. package/src/modules/editor/package.json +2 -1
  166. package/src/modules/editor/src/astHelpers/{addWarningsForRemovedComments.js → addWarningsForRemovedComments.cjs} +0 -0
  167. package/src/modules/editor/src/astHelpers/{getClosestNodeWithOffset.js → getClosestNodeWithOffset.cjs} +0 -0
  168. package/src/modules/editor/src/astHelpers/{getDescendantNodes.js → getDescendantNodes.cjs} +0 -0
  169. package/src/modules/editor/src/astHelpers/{hasMultipleReturnStatements.js → hasMultipleReturnStatements.cjs} +0 -0
  170. package/src/modules/editor/src/astHelpers/{isAmdDefineCallExpression.js → isAmdDefineCallExpression.cjs} +0 -0
  171. package/src/modules/editor/src/astHelpers/{isAmdFactoryReturnStatement.js → isAmdFactoryReturnStatement.cjs} +0 -0
  172. package/src/modules/editor/src/astHelpers/{isInteropDefaultExpressionStatement.js → isInteropDefaultExpressionStatement.cjs} +0 -0
  173. package/src/modules/editor/src/astHelpers/{isInvalidTextLoaderImportDeclaration.js → isInvalidTextLoaderImportDeclaration.cjs} +0 -0
  174. package/src/modules/editor/src/astHelpers/{isRequireToUrlCallExpression.js → isRequireToUrlCallExpression.cjs} +0 -0
  175. package/src/modules/editor/src/astHelpers/{moveComments.js → moveComments.cjs} +0 -0
  176. package/src/modules/editor/src/babelPlugins/{cleanupRegisterXQueryModulePlugin.js → cleanupRegisterXQueryModulePlugin.cjs} +0 -0
  177. package/src/modules/editor/src/babelPlugins/{convertAmdToEsmPlugin.js → convertAmdToEsmPlugin.cjs} +0 -0
  178. package/src/modules/editor/src/babelPlugins/{recastPlugin.js → recastPlugin.cjs} +0 -0
  179. package/src/modules/editor/src/babelPlugins/{rewriteConfigImportsPlugin.js → rewriteConfigImportsPlugin.cjs} +0 -0
  180. package/src/modules/editor/src/babelPlugins/{rewriteImportFileExtensionPlugin.js → rewriteImportFileExtensionPlugin.cjs} +0 -0
  181. package/src/modules/editor/src/babelPlugins/{rewriteInteropDefaultPlugin.js → rewriteInteropDefaultPlugin.cjs} +0 -0
  182. package/src/modules/editor/src/babelPlugins/{rewriteJsonLoaderPlugin.js → rewriteJsonLoaderPlugin.cjs} +0 -0
  183. package/src/modules/editor/src/babelPlugins/{rewriteMainJsImportsPlugin.js → rewriteMainJsImportsPlugin.cjs} +0 -0
  184. package/src/modules/editor/src/babelPlugins/{rewriteSrcPathPlugin.js → rewriteSrcPathPlugin.cjs} +0 -0
  185. package/src/modules/editor/src/babelPlugins/{rewriteSvgLoaderPlugin.js → rewriteSvgLoaderPlugin.cjs} +0 -0
  186. package/src/modules/editor/src/babelPlugins/{validatePlugin.js → validatePlugin.cjs} +0 -0
  187. package/src/modules/editor/src/commands/api/convertEditorWithOutput.js +13 -14
  188. package/src/modules/editor/src/commands/command.build.controller.js +7 -10
  189. package/src/modules/editor/src/commands/command.build.js +10 -3
  190. package/src/modules/editor/src/commands/command.convert.editor.controller.js +7 -9
  191. package/src/modules/editor/src/commands/command.convert.editor.js +10 -3
  192. package/src/modules/editor/src/commands/command.convert.package.controller.js +17 -20
  193. package/src/modules/editor/src/commands/command.convert.package.js +10 -3
  194. package/src/modules/editor/src/commands/command.run.controller.js +44 -55
  195. package/src/modules/editor/src/commands/command.run.js +10 -3
  196. package/src/modules/editor/src/config.js +112 -112
  197. package/src/modules/editor/src/convert.js +3 -9
  198. package/src/modules/editor/src/getAppConfig.js +27 -8
  199. package/src/modules/editor/src/getAppManifest.js +7 -7
  200. package/src/modules/editor/src/getDependenciesInLoadOrder.js +6 -14
  201. package/src/modules/editor/src/getImportsForPackages.js +5 -5
  202. package/src/modules/editor/src/getPatternsForSpecialFileType.js +2 -2
  203. package/src/modules/editor/src/getWebpackConfig.js +25 -23
  204. package/src/modules/editor/src/getWebpackDevMiddlewareConfig.js +2 -2
  205. package/src/modules/editor/src/helpers/WarningsByFilename.js +1 -1
  206. package/src/modules/editor/src/helpers/mergeIndexPageAndManifest.js +4 -4
  207. package/src/modules/editor/src/helpers/normalisePath.js +3 -3
  208. package/src/modules/editor/src/helpers/outputWarningsByFilename.js +4 -4
  209. package/src/modules/editor/src/helpers/prettifyJsFile.js +3 -6
  210. package/src/modules/editor/src/helpers/renameJsxFile.js +4 -4
  211. package/src/modules/editor/src/helpers/transformJsFile.js +24 -10
  212. package/src/modules/editor/src/helpers/updateEditorPackageJson.js +4 -4
  213. package/src/modules/editor/src/helpers/validateJsFile.js +11 -7
  214. package/src/modules/editor/src/helpers/writeJsFileToDisk.js +3 -3
  215. package/src/modules/editor/src/templates/{app-entry.js → app-entry.cjs} +0 -0
  216. package/src/modules/editor/src/webpackLoaders/{generatedLoader.js → generatedLoader.cjs} +12 -3
  217. package/src/modules/editor/src/webpackLoaders/{platformSourceMapLoader.js → platformSourceMapLoader.cjs} +2 -2
  218. package/src/modules/editor/src/webpackLoaders/{symbolLoader.js → symbolLoader.cjs} +0 -0
  219. package/src/modules/editor/src/webpackLoaders/{vendorsSourceMapLoader.js → vendorsSourceMapLoader.cjs} +0 -0
  220. package/src/modules/editor/src/webpackPlugins/CopyPlugin.js +177 -162
  221. package/src/modules/editor/src/webpackPlugins/DependenciesInLoadOrderPlugin.js +2 -6
  222. package/src/modules/editor/src/webpackPlugins/FdtOutputPlugin.js +4 -6
  223. package/src/modules/editor/src/webpackPlugins/RemoveExplicitExtensionResolvePlugin.js +3 -6
  224. package/src/modules/editor/src/webpackPlugins/ResolveImportAliasPlugin.js +2 -4
  225. package/src/modules/editor/src/webpackPlugins/UnitTestPlugin.js +5 -7
  226. package/src/modules/editor/test/dependecyWatching.test.js +11 -12
  227. package/src/modules/editor/test/fixtures.test.js +21 -16
  228. package/src/modules/editor/test/helpers/appMutations/addFilesToPackage.js +4 -4
  229. package/src/modules/editor/test/helpers/appMutations/addFontoManifestToPackage.js +4 -4
  230. package/src/modules/editor/test/helpers/appMutations/addPackage.js +7 -11
  231. package/src/modules/editor/test/helpers/appMutations/generateSpecialFiles.js +2 -2
  232. package/src/modules/editor/test/helpers/appMutations/mutateConfigFontoManifest.js +4 -4
  233. package/src/modules/editor/test/helpers/appMutations/mutatePackageFontoManifest.js +4 -4
  234. package/src/modules/editor/test/helpers/appMutations/removeFilesFromPackage.js +4 -4
  235. package/src/modules/editor/test/helpers/appMutations/removePackage.js +5 -5
  236. package/src/modules/editor/test/helpers/assertFixtureSnapshot.js +8 -6
  237. package/src/modules/editor/test/helpers/createAppStructure.js +8 -4
  238. package/src/modules/editor/test/helpers/createTempDirectory.js +3 -3
  239. package/src/modules/editor/test/helpers/createWebpackWatch.js +21 -22
  240. package/src/modules/editor/test/helpers/normaliseLineEndings.js +2 -2
  241. package/src/modules/editor-pre-7-7-0/index.js +19 -23
  242. package/src/modules/editor-pre-7-7-0/package.json +2 -1
  243. package/src/modules/editor-pre-7-7-0/src/api/addCommentToAstNode.js +6 -9
  244. package/src/modules/editor-pre-7-7-0/src/api/addonsAddDependencies.js +1 -3
  245. package/src/modules/editor-pre-7-7-0/src/api/createMessageTemplate.js +4 -6
  246. package/src/modules/editor-pre-7-7-0/src/api/createPackageDirectoryPath.js +4 -6
  247. package/src/modules/editor-pre-7-7-0/src/api/createPrettifiedCode.js +12 -8
  248. package/src/modules/editor-pre-7-7-0/src/api/downloadEditorSDK.js +3 -5
  249. package/src/modules/editor-pre-7-7-0/src/api/executeAndLog.js +4 -6
  250. package/src/modules/editor-pre-7-7-0/src/api/extractZip.js +4 -6
  251. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabel.js +2 -4
  252. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabels.js +3 -5
  253. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabelsForChanges.js +4 -6
  254. package/src/modules/editor-pre-7-7-0/src/api/getAddonsFromEditorSDK.js +2 -4
  255. package/src/modules/editor-pre-7-7-0/src/api/init/checkEditorDestination.js +2 -4
  256. package/src/modules/editor-pre-7-7-0/src/api/init/createConfigConfiguration.js +13 -11
  257. package/src/modules/editor-pre-7-7-0/src/api/init/createConfigFontoManifest.js +3 -5
  258. package/src/modules/editor-pre-7-7-0/src/api/init/createSchemaExperienceResolver.js +11 -8
  259. package/src/modules/editor-pre-7-7-0/src/api/inquirerPrompts.js +20 -30
  260. package/src/modules/editor-pre-7-7-0/src/api/npmInstall.js +5 -7
  261. package/src/modules/editor-pre-7-7-0/src/api/promptForVersionAndDownloadEditorSDK.js +8 -11
  262. package/src/modules/editor-pre-7-7-0/src/api/schema/buildSchemaExperienceConfigurationModel.js +2 -6
  263. package/src/modules/editor-pre-7-7-0/src/api/schema/checkIfCompiledSchemaOverwritesFiles.js +3 -5
  264. package/src/modules/editor-pre-7-7-0/src/api/schema/compile.js +3 -5
  265. package/src/modules/editor-pre-7-7-0/src/api/schema/createCommentsForElement.js +6 -10
  266. package/src/modules/editor-pre-7-7-0/src/api/schema/createSchemaExperiencePackages.js +13 -15
  267. package/src/modules/editor-pre-7-7-0/src/api/schema/createSchemaPackages.js +7 -11
  268. package/src/modules/editor-pre-7-7-0/src/api/schema/getPrefixByNamespaceUri.js +4 -6
  269. package/src/modules/editor-pre-7-7-0/src/api/schema/getSchemaFontoJson.js +5 -7
  270. package/src/modules/editor-pre-7-7-0/src/api/schema/getVersionedSchemaCompilerBaseUrl.js +4 -5
  271. package/src/modules/editor-pre-7-7-0/src/api/schema/zipHelpers.js +6 -8
  272. package/src/modules/editor-pre-7-7-0/src/api/updateManifest.js +2 -4
  273. package/src/modules/editor-pre-7-7-0/src/api/upgrade/getMajorVersion.js +1 -5
  274. package/src/modules/editor-pre-7-7-0/src/api/upgrade/preprocessData.js +3 -5
  275. package/src/modules/editor-pre-7-7-0/src/api/upgrade/updateConfigFontoManifest.js +2 -4
  276. package/src/modules/editor-pre-7-7-0/src/api/validateAddons.js +1 -3
  277. package/src/modules/editor-pre-7-7-0/src/api/validateManifest.js +1 -3
  278. package/src/modules/editor-pre-7-7-0/src/api/writeAstProgramToFile.js +7 -6
  279. package/src/modules/editor-pre-7-7-0/src/command.addons.controller.js +18 -25
  280. package/src/modules/editor-pre-7-7-0/src/command.addons.js +10 -3
  281. package/src/modules/editor-pre-7-7-0/src/command.build.controller.js +6 -8
  282. package/src/modules/editor-pre-7-7-0/src/command.build.js +10 -3
  283. package/src/modules/editor-pre-7-7-0/src/command.init.controller.js +33 -36
  284. package/src/modules/editor-pre-7-7-0/src/command.init.js +10 -3
  285. package/src/modules/editor-pre-7-7-0/src/command.run.controller.js +6 -8
  286. package/src/modules/editor-pre-7-7-0/src/command.run.js +10 -3
  287. package/src/modules/editor-pre-7-7-0/src/command.schema.compile.controller.js +10 -12
  288. package/src/modules/editor-pre-7-7-0/src/command.schema.compile.js +10 -3
  289. package/src/modules/editor-pre-7-7-0/src/command.upgrade.controller.js +24 -31
  290. package/src/modules/editor-pre-7-7-0/src/command.upgrade.js +10 -3
  291. package/src/modules/editor-pre-7-7-0/src/command.versions.controller.js +2 -4
  292. package/src/modules/editor-pre-7-7-0/src/command.versions.js +10 -3
  293. package/src/modules/editor-pre-7-7-0/test/api/schema/buildSchemaExperienceConfigurationModel.test.js +19 -18
  294. package/src/modules/editor-pre-7-7-0/test/api/schema/createCommentsForElement.test.js +7 -10
  295. package/src/modules/editor-pre-7-7-0/test/api/schema/getPrefixByNamespaceUri.test.js +3 -6
  296. package/src/modules/editor-pre-7-7-0/test/api/schema/testHelpers.js +5 -14
  297. package/src/modules/editor-pre-7-7-0/test/api/schema/zipSchemaSource.test.js +9 -7
  298. package/src/modules/localization/index.js +13 -13
  299. package/src/modules/localization/package.json +2 -1
  300. package/src/modules/localization/src/api/Message.js +3 -3
  301. package/src/modules/localization/src/api/createMessagesTable.js +3 -5
  302. package/src/modules/localization/src/api/deduplicateMessages.js +2 -2
  303. package/src/modules/localization/src/api/extractMessages.js +5 -5
  304. package/src/modules/localization/src/api/getMessagesFromOperation.js +3 -3
  305. package/src/modules/localization/src/api/getMessagesFromSource.js +9 -4
  306. package/src/modules/localization/src/api/getOperationMessages.js +9 -9
  307. package/src/modules/localization/src/api/getSourceMessages.js +9 -8
  308. package/src/modules/localization/src/api/index.js +10 -5
  309. package/src/modules/localization/src/api/loadMessageBundle.js +6 -5
  310. package/src/modules/localization/src/api/{parser.js → parser.cjs} +0 -0
  311. package/src/modules/localization/src/api/promiseUtils.js +1 -1
  312. package/src/modules/localization/src/api/updateMessagesWithTemplate.js +2 -2
  313. package/src/modules/localization/src/command.extract.controller.js +7 -9
  314. package/src/modules/localization/src/command.extract.js +10 -3
  315. package/src/modules/localization/src/command.merge.controller.js +7 -9
  316. package/src/modules/localization/src/command.merge.js +10 -3
  317. package/src/modules/localization/src/command.messages.controller.js +5 -7
  318. package/src/modules/localization/src/command.messages.js +11 -4
  319. package/src/modules/localization/src/command.update.controller.js +8 -10
  320. package/src/modules/localization/src/command.update.js +10 -3
  321. package/src/modules/localization/test/api/Message.test.js +3 -3
  322. package/src/modules/localization/test/api/deduplicateMessages.test.js +4 -5
  323. package/src/modules/localization/test/api/getMessagesFromOperation.test.js +3 -4
  324. package/src/modules/localization/test/api/getMessagesFromSource.test.js +3 -4
  325. package/src/modules/localization/test/api/parser.test.js +3 -2
  326. package/src/modules/localization/test/api/promiseUtils.test.js +2 -2
  327. package/src/modules/localization/test/api/roundtripThroughJson.js +2 -2
  328. package/src/modules/localization/test/api/updateMessagesWithTemplate.test.js +4 -5
  329. package/src/modules/localization/test/command.extract.test.js +11 -10
  330. package/src/modules/localization/test/command.merge.test.js +11 -10
  331. package/src/modules/localization/test/command.messages.test.js +10 -9
  332. package/src/modules/localization/test/command.update.test.js +11 -10
  333. package/src/modules/localization/test/index.test.js +15 -14
  334. package/src/modules/localization/test/promiseUtils.test.js +2 -4
  335. package/src/modules/operations/index.js +5 -6
  336. package/src/modules/operations/package.json +2 -1
  337. package/src/modules/operations/src/api/createOperationsTable.js +3 -5
  338. package/src/modules/operations/src/api/getOperation.js +3 -5
  339. package/src/modules/operations/src/api/getOperations.js +12 -14
  340. package/src/modules/operations/src/command.operation.controller.js +3 -5
  341. package/src/modules/operations/src/command.operation.js +10 -3
  342. package/src/modules/operations/src/command.operations.controller.js +4 -6
  343. package/src/modules/operations/src/command.operations.js +11 -4
  344. package/src/modules/operations/test/command.operation.test.js +10 -9
  345. package/src/modules/operations/test/command.operations.test.js +11 -9
  346. package/src/modules/operations/test/getOperation.test.js +6 -4
  347. package/src/modules/operations/test/getOperations.test.js +6 -4
  348. package/src/modules/operations/test/index.test.js +11 -11
  349. package/src/modules/review/index.js +13 -10
  350. package/src/modules/review/package.json +2 -1
  351. package/src/modules/review/src/command.build.controller.js +13 -15
  352. package/src/modules/review/src/command.build.js +11 -4
  353. package/src/modules/review/src/command.download-self-contained.controller.js +6 -8
  354. package/src/modules/review/src/command.download-self-contained.js +10 -3
  355. package/src/modules/review/src/command.init.controller.js +7 -9
  356. package/src/modules/review/src/command.init.js +10 -3
  357. package/src/modules/review/src/command.run.controller.js +14 -16
  358. package/src/modules/review/src/command.run.js +8 -4
  359. package/src/modules/review/src/command.upgrade.controller.js +8 -10
  360. package/src/modules/review/src/command.upgrade.js +10 -3
  361. package/src/modules/review/src/command.versions.controller.js +2 -4
  362. package/src/modules/review/src/command.versions.js +10 -3
  363. package/src/modules/review/src/utilities/FontoxmlReviewManifest.js +2 -6
  364. package/src/modules/review/src/utilities/cleanup.js +6 -8
  365. package/src/modules/review/src/utilities/constants.js +5 -3
  366. package/src/modules/review/src/utilities/copyWhitelistedFiles.js +4 -6
  367. package/src/modules/review/src/utilities/executeAndLog.js +4 -5
  368. package/src/modules/review/src/utilities/getVerbosityLevel.js +3 -5
  369. package/src/modules/review/src/utilities/getWhitelist.js +5 -7
  370. package/src/modules/review/src/utilities/setEntryVisibility.js +3 -14
  371. package/src/modules/review/src/utilities/validateInstance.js +6 -8
  372. package/src/modules/schema/index.js +16 -24
  373. package/src/modules/schema/package.json +2 -1
  374. package/src/modules/schema/src/api/AttributeSummary.js +2 -4
  375. package/src/modules/schema/src/api/ElementSummary.js +2 -4
  376. package/src/modules/schema/src/api/SchemaSummary.js +11 -10
  377. package/src/modules/schema/src/api/SimpleTypeSummary.js +3 -5
  378. package/src/modules/schema/src/api/createAttributesTable.js +3 -5
  379. package/src/modules/schema/src/api/createElementsTable.js +3 -5
  380. package/src/modules/schema/src/api/createSchemasTable.js +4 -6
  381. package/src/modules/schema/src/api/createSimpleTypesTable.js +3 -5
  382. package/src/modules/schema/src/api/getClosestMatchingSchemaSummary.js +7 -9
  383. package/src/modules/schema/src/api/getSchemaSummaries.js +5 -7
  384. package/src/modules/schema/src/command.attribute.controller.js +3 -5
  385. package/src/modules/schema/src/command.attribute.js +10 -3
  386. package/src/modules/schema/src/command.attributes.controller.js +4 -6
  387. package/src/modules/schema/src/command.attributes.js +11 -4
  388. package/src/modules/schema/src/command.element.controller.js +4 -6
  389. package/src/modules/schema/src/command.element.js +10 -3
  390. package/src/modules/schema/src/command.elements.controller.js +4 -6
  391. package/src/modules/schema/src/command.elements.js +11 -4
  392. package/src/modules/schema/src/command.schemas.controller.js +4 -6
  393. package/src/modules/schema/src/command.schemas.js +11 -4
  394. package/src/modules/schema/src/command.simpletypes.controller.js +4 -6
  395. package/src/modules/schema/src/command.simpletypes.js +11 -4
  396. package/src/modules/schema/src/helpers/renderSimpleType.js +3 -5
  397. package/src/modules/schema/src/helpers/restrictionFormatter.js +2 -4
  398. package/src/modules/schema/test/AttributeSummary.test.js +3 -5
  399. package/src/modules/schema/test/ElementSummary.test.js +3 -5
  400. package/src/modules/schema/test/SchemaSummary.test.js +9 -7
  401. package/src/modules/schema/test/SimpleTypeSummary.test.js +3 -5
  402. package/src/modules/schema/test/command.attribute.test.js +14 -12
  403. package/src/modules/schema/test/command.attributes.test.js +14 -12
  404. package/src/modules/schema/test/command.element.test.js +14 -12
  405. package/src/modules/schema/test/command.elements.test.js +14 -12
  406. package/src/modules/schema/test/command.schemas.test.js +10 -9
  407. package/src/modules/schema/test/command.simpletypes.test.js +10 -9
  408. package/src/modules/schema/test/getClosestMatchingSchemaSummary.test.js +6 -4
  409. package/src/modules/schema/test/getSchemaSummaries.test.js +6 -4
  410. package/src/modules/schema/test/index.test.js +37 -37
  411. package/src/modules/schema/test/renderSimpleType.test.js +12 -13
  412. package/src/modules/schema/test/restrictionFormatter.test.js +3 -5
  413. package/src/modules/schema-compiler/index.js +13 -10
  414. package/src/modules/schema-compiler/package.json +2 -1
  415. package/src/modules/schema-compiler/src/command.build.controller.js +12 -15
  416. package/src/modules/schema-compiler/src/command.build.js +11 -4
  417. package/src/modules/schema-compiler/src/command.download-self-contained.controller.js +6 -8
  418. package/src/modules/schema-compiler/src/command.download-self-contained.js +10 -3
  419. package/src/modules/schema-compiler/src/command.init.controller.js +7 -9
  420. package/src/modules/schema-compiler/src/command.init.js +10 -3
  421. package/src/modules/schema-compiler/src/command.run.controller.js +14 -16
  422. package/src/modules/schema-compiler/src/command.run.js +6 -4
  423. package/src/modules/schema-compiler/src/command.upgrade.controller.js +8 -10
  424. package/src/modules/schema-compiler/src/command.upgrade.js +10 -3
  425. package/src/modules/schema-compiler/src/command.versions.controller.js +2 -4
  426. package/src/modules/schema-compiler/src/command.versions.js +10 -3
  427. package/src/modules/schema-compiler/src/utilities/FontoxmlSchemaCompilerManifest.js +2 -6
  428. package/src/modules/schema-compiler/src/utilities/cleanup.js +6 -8
  429. package/src/modules/schema-compiler/src/utilities/constants.js +5 -3
  430. package/src/modules/schema-compiler/src/utilities/copyWhitelistedFiles.js +4 -6
  431. package/src/modules/schema-compiler/src/utilities/executeAndLog.js +4 -5
  432. package/src/modules/schema-compiler/src/utilities/getVerbosityLevel.js +3 -5
  433. package/src/modules/schema-compiler/src/utilities/getWhitelist.js +5 -7
  434. package/src/modules/schema-compiler/src/utilities/setEntryVisibility.js +3 -14
  435. package/src/modules/schema-compiler/src/utilities/validateInstance.js +6 -8
  436. package/src/modules/spell-checker/index.js +13 -10
  437. package/src/modules/spell-checker/package.json +2 -1
  438. package/src/modules/spell-checker/src/command.build.controller.js +13 -15
  439. package/src/modules/spell-checker/src/command.build.js +11 -4
  440. package/src/modules/spell-checker/src/command.download-self-contained.controller.js +6 -8
  441. package/src/modules/spell-checker/src/command.download-self-contained.js +10 -3
  442. package/src/modules/spell-checker/src/command.init.controller.js +7 -9
  443. package/src/modules/spell-checker/src/command.init.js +10 -3
  444. package/src/modules/spell-checker/src/command.run.controller.js +13 -15
  445. package/src/modules/spell-checker/src/command.run.js +8 -4
  446. package/src/modules/spell-checker/src/command.upgrade.controller.js +8 -10
  447. package/src/modules/spell-checker/src/command.upgrade.js +10 -3
  448. package/src/modules/spell-checker/src/command.versions.controller.js +2 -4
  449. package/src/modules/spell-checker/src/command.versions.js +10 -3
  450. package/src/modules/spell-checker/src/utilities/FontoxmlSpellCheckerManifest.js +2 -6
  451. package/src/modules/spell-checker/src/utilities/cleanup.js +6 -8
  452. package/src/modules/spell-checker/src/utilities/constants.js +5 -3
  453. package/src/modules/spell-checker/src/utilities/copyWhitelistedFiles.js +4 -6
  454. package/src/modules/spell-checker/src/utilities/executeAndLog.js +4 -5
  455. package/src/modules/spell-checker/src/utilities/getVerbosityLevel.js +3 -5
  456. package/src/modules/spell-checker/src/utilities/getWhitelist.js +5 -7
  457. package/src/modules/spell-checker/src/utilities/setEntryVisibility.js +3 -14
  458. package/src/modules/spell-checker/src/utilities/validateInstance.js +6 -8
  459. package/src/response/FdtResponse.js +8 -13
  460. package/src/response/extras.js +3 -5
  461. package/src/response/primitives.js +4 -4
  462. package/test/App.test.js +113 -93
  463. package/test/AssertableWritableStream.test.js +3 -8
  464. package/test/FdtCommand.test.js +9 -7
  465. package/test/FdtTable.test.js +12 -11
  466. package/test/app/invalid-module-1/index.js +1 -1
  467. package/test/app/invalid-module-1/package.json +1 -0
  468. package/test/app/test-module-1/index.js +1 -1
  469. package/test/app/test-module-1/package.json +1 -0
  470. package/test/app/test-module-2/index.js +12 -7
  471. package/test/app/test-module-2/package.json +1 -0
  472. package/test/app/test-module-2/src/testLazyLoadCommand.js +2 -4
  473. package/test/app/test-module-2-duplicate/index.js +1 -3
  474. package/test/app/test-module-2-duplicate/package.json +1 -0
  475. package/test/app-pre-7-7-0/config.js +1 -1
  476. package/test/app-with-configjs/config.js +1 -1
  477. package/test/module.core.test.js +39 -29
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fontoxml/fontoxml-development-tools",
3
3
  "description": "Development tools for Fonto.",
4
- "version": "3.7.0-beta.6",
4
+ "version": "3.8.0-beta.2",
5
5
  "author": "The Fonto Team",
6
6
  "license": "MIT",
7
7
  "keywords": [
@@ -17,6 +17,7 @@
17
17
  "engines": {
18
18
  "node": ">=12"
19
19
  },
20
+ "type": "module",
20
21
  "scripts": {
21
22
  "lint": "eslint --ext .js,.jsx,.ts,.tsx --fix .",
22
23
  "start": "node ./bin/development-tools",
package/src/App.js CHANGED
@@ -1,24 +1,32 @@
1
- 'use strict';
2
-
3
- const os = require('os');
4
- const path = require('path');
5
-
6
- const ask = require('ask-nicely');
7
-
8
- const FdtResponse = require('./response/FdtResponse');
9
-
10
- const AssertableWritableStream = require('./AssertableWritableStream');
11
- const ConfigManager = require('./ConfigManager');
12
- const FdtCommand = require('./FdtCommand');
13
- const ModuleRegistrationApi = require('./ModuleRegistrationApi');
14
-
15
- const addCoreModulesToApp = require('./addCoreModulesToApp');
16
- const addModulesToApp = require('./addModulesToApp');
17
- const createConfigFileInHomedir = require('./createConfigFileInHomedir');
18
- const enrichRequestObject = require('./enrichRequestObject');
19
- const getParentDirectoryContainingFileSync = require('./getParentDirectoryContainingFileSync');
20
-
21
- const packageJson = require(path.join(__dirname, '..', 'package.json'));
1
+ import ask from 'ask-nicely';
2
+ import { readFileSync } from 'fs';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+
7
+ import addCoreModulesToApp from './addCoreModulesToApp.js';
8
+ import addModulesToApp from './addModulesToApp.js';
9
+ import AssertableWritableStream from './AssertableWritableStream.js';
10
+ import ConfigManager from './ConfigManager.js';
11
+ import createConfigFileInHomedir from './createConfigFileInHomedir.js';
12
+ import enrichRequestObject from './enrichRequestObject.js';
13
+ import FdtCommand from './FdtCommand.js';
14
+ import getParentDirectoryContainingFileSync from './getParentDirectoryContainingFileSync.js';
15
+ import ModuleRegistrationApi from './ModuleRegistrationApi.js';
16
+ import FdtResponse from './response/FdtResponse.js';
17
+
18
+ const __filename = fileURLToPath(import.meta.url);
19
+ const __dirname = path.dirname(__filename);
20
+
21
+ let packageJson = {};
22
+ try {
23
+ packageJson = JSON.parse(
24
+ readFileSync(path.resolve(__dirname, '..', 'package.json'), 'utf8')
25
+ );
26
+ } catch (_err) {
27
+ // TODO: Handle this error properly.
28
+ // Ignore
29
+ }
22
30
 
23
31
  const DEFAULT_OPTIONS = {
24
32
  appName: 'fdt',
@@ -52,9 +60,9 @@ function enableTestOutput(app, options) {
52
60
  }
53
61
  }
54
62
 
55
- class FontoXMLDevelopmentToolsApp {
63
+ export default class FontoXMLDevelopmentToolsApp {
56
64
  /**
57
- * Creates an instance of the FontoXMLDevelopmentToolsApp.
65
+ * Initializes this instance of the FontoXMLDevelopmentToolsApp.
58
66
  *
59
67
  * @param {object} [options]
60
68
  * An optional options object.
@@ -92,9 +100,9 @@ class FontoXMLDevelopmentToolsApp {
92
100
  * @param {boolean} [options.useTestOutput]
93
101
  * When set to true, enable test output. This is meant for unit tests and will do the following:
94
102
  * - Output everything to .testOutput stream which has some helper methods for unit testing.
95
- * @constructor
96
103
  */
97
- constructor(options = {}) {
104
+ async init(options = {}) {
105
+ // const appObject = new FontoXMLDevelopmentToolsApp();
98
106
  /* istanbul ignore else: All tests should be run in testmode to prevent configuration conflicts */
99
107
  if (options.testMode) {
100
108
  enableTestMode(options);
@@ -160,16 +168,34 @@ class FontoXMLDevelopmentToolsApp {
160
168
 
161
169
  this.modules = [];
162
170
  this.builtInModules = [];
163
- addCoreModulesToApp(this, options);
171
+ await addCoreModulesToApp(this, options);
164
172
 
165
173
  this.request = Object.create(null);
166
174
  if (!options.skipEnrichRequestObject) {
167
- enrichRequestObject(this);
175
+ await enrichRequestObject(this);
168
176
  }
169
177
 
170
178
  if (!options.skipAddModules) {
171
- addModulesToApp(this);
179
+ await addModulesToApp(this);
180
+ }
181
+ return this;
182
+ }
183
+
184
+ /**
185
+ * Retrieve the path to a registered module by its name.
186
+ *
187
+ * @param {string} moduleName The name of the module (see its package.json).
188
+ *
189
+ * @return {(string|undefined)}
190
+ */
191
+ getPathToModule(moduleName) {
192
+ for (const module of this.modules) {
193
+ const moduleInfo = module.getInfo();
194
+ if (moduleInfo.name === moduleName) {
195
+ return moduleInfo.path;
196
+ }
172
197
  }
198
+ return undefined;
173
199
  }
174
200
 
175
201
  /**
@@ -181,8 +207,8 @@ class FontoXMLDevelopmentToolsApp {
181
207
  *
182
208
  * @return {(ModuleRegistrationApi|null)}
183
209
  */
184
- enableBuiltInModule(modulePath, ...extra) {
185
- const enabledModule = this.enableModule(modulePath, ...extra);
210
+ async enableBuiltInModule(modulePath, ...extra) {
211
+ const enabledModule = await this.enableModule(modulePath, ...extra);
186
212
 
187
213
  if (enabledModule) {
188
214
  this.builtInModules.push(enabledModule);
@@ -199,7 +225,7 @@ class FontoXMLDevelopmentToolsApp {
199
225
  *
200
226
  * @return {(ModuleRegistrationApi|null)}
201
227
  */
202
- silentEnableModule(modulePath, ...extra) {
228
+ async silentEnableModule(modulePath, ...extra) {
203
229
  const enabledModule = new ModuleRegistrationApi(this, modulePath);
204
230
  const modInfo = enabledModule.getInfo();
205
231
 
@@ -210,7 +236,7 @@ class FontoXMLDevelopmentToolsApp {
210
236
  return null;
211
237
  }
212
238
 
213
- enabledModule.load(...extra);
239
+ await enabledModule.load(...extra);
214
240
 
215
241
  this.modules.push(enabledModule);
216
242
 
@@ -225,8 +251,8 @@ class FontoXMLDevelopmentToolsApp {
225
251
  *
226
252
  * @return {(ModuleRegistrationApi|null)}
227
253
  */
228
- enableModule(modulePath, ...extra) {
229
- let enabledModule = this.silentEnableModule(modulePath, ...extra);
254
+ async enableModule(modulePath, ...extra) {
255
+ let enabledModule = await this.silentEnableModule(modulePath, ...extra);
230
256
 
231
257
  if (!enabledModule) {
232
258
  enabledModule = new ModuleRegistrationApi(this, modulePath);
@@ -400,5 +426,3 @@ class FontoXMLDevelopmentToolsApp {
400
426
  }
401
427
  }
402
428
  }
403
-
404
- module.exports = FontoXMLDevelopmentToolsApp;
@@ -1,9 +1,6 @@
1
- 'use strict';
2
-
3
- const assert = require('assert');
4
- const stream = require('stream');
5
-
6
- const stripAnsi = require('strip-ansi');
1
+ import assert from 'assert';
2
+ import stream from 'stream';
3
+ import stripAnsi from 'strip-ansi';
7
4
 
8
5
  const OUTPUT = Symbol('test output');
9
6
 
@@ -34,7 +31,7 @@ function handleAllCallbacks(captures, endCallback, nextCaptureCallback) {
34
31
  writeNextCapture();
35
32
  }
36
33
 
37
- class AssertableWritableStream extends stream.Writable {
34
+ export default class AssertableWritableStream extends stream.Writable {
38
35
  /**
39
36
  * Constructor for the AssertableWritableStream class. Based on stream.Writable.
40
37
  * @see https://nodejs.org/api/stream.html#stream_constructor_new_stream_writable_options
@@ -344,5 +341,3 @@ class AssertableWritableStream extends stream.Writable {
344
341
  }
345
342
  }
346
343
  }
347
-
348
- module.exports = AssertableWritableStream;
@@ -1,7 +1,5 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const path = require('path');
1
+ import fs from 'fs';
2
+ import path from 'path';
5
3
 
6
4
  const BASE_LOCATION = Symbol('base configuration file location');
7
5
  const CONFIG_FILE_NAME = Symbol('configuration file name');
@@ -26,7 +24,7 @@ function readJsonOrReturnObject(jsonPath) {
26
24
  /**
27
25
  * Manages a unified configuration file for all modules that register their config.
28
26
  */
29
- class ConfigManager {
27
+ export default class ConfigManager {
30
28
  /**
31
29
  * @param {Array} configLocation The main config file location to which changes will be stored.
32
30
  * @param {Array} baseConfigLocation A base config file to inherit from.
@@ -153,5 +151,3 @@ class ConfigManager {
153
151
  return JSON.stringify(serializedConfig, null, '\t');
154
152
  }
155
153
  }
156
-
157
- module.exports = ConfigManager;
@@ -1,16 +1,12 @@
1
- 'use strict';
1
+ import { readFileSync } from 'fs';
2
+ import path from 'path';
3
+ import { pathToFileURL } from 'url';
2
4
 
3
- const path = require('path');
5
+ import { isNightly, isPre770Editor, isPre782Editor } from './editorVersions.js';
6
+ import getParentDirectoryContainingFileSync from './getParentDirectoryContainingFileSync.js';
4
7
 
5
- const getParentDirectoryContainingFileSync = require('./getParentDirectoryContainingFileSync');
6
- const {
7
- isNightly,
8
- isPre770Editor,
9
- isPre782Editor,
10
- } = require('./editorVersions');
11
-
12
- class EditorRepository {
13
- constructor(app) {
8
+ export default class EditorRepository {
9
+ async init(app) {
14
10
  this._app = app;
15
11
 
16
12
  this.path = getParentDirectoryContainingFileSync(
@@ -31,7 +27,12 @@ class EditorRepository {
31
27
  }
32
28
 
33
29
  try {
34
- Object.assign(this, require(path.join(this.path, 'manifest.json')));
30
+ Object.assign(
31
+ this,
32
+ JSON.parse(
33
+ readFileSync(path.join(this.path, 'manifest.json'), 'utf-8')
34
+ )
35
+ );
35
36
  } catch (_error) {
36
37
  this._app.logger.notice(`Could not read manifest.json.`);
37
38
  this._app.logger.notice(
@@ -46,7 +47,7 @@ class EditorRepository {
46
47
 
47
48
  try {
48
49
  const configJsPath = path.join(this.path, 'config.js');
49
- this.config = require(configJsPath)();
50
+ this.config = (await import(pathToFileURL(configJsPath))).default();
50
51
  this.configSource = configJsPath;
51
52
  } catch (_error) {
52
53
  // No-op
@@ -55,7 +56,7 @@ class EditorRepository {
55
56
  if (!this.configSource) {
56
57
  try {
57
58
  const configJsonPath = path.join(this.path, 'config.json');
58
- this.config = require(configJsonPath);
59
+ this.config = JSON.parse(readFileSync(configJsonPath));
59
60
  this.configSource = configJsonPath;
60
61
  } catch (_error) {
61
62
  // No-op
@@ -72,5 +73,3 @@ class EditorRepository {
72
73
  }
73
74
  }
74
75
  }
75
-
76
- module.exports = EditorRepository;
package/src/FdtCommand.js CHANGED
@@ -1,8 +1,9 @@
1
- 'use strict';
1
+ import ask from 'ask-nicely';
2
+ import path from 'path';
3
+ import { fileURLToPath, pathToFileURL } from 'url';
2
4
 
3
- const path = require('path');
4
-
5
- const ask = require('ask-nicely');
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
6
7
 
7
8
  const FILENAMES_TO_SKIP_FOR_SET_CONTROLLER_CALLSITES = Symbol(
8
9
  'FILENAMES_TO_SKIP_FOR_SET_CONTROLLER_CALLSITES'
@@ -13,7 +14,7 @@ const FILENAMES_TO_SKIP_FOR_SET_CONTROLLER_CALLSITES = Symbol(
13
14
  *
14
15
  * @augments AskNicely.Command
15
16
  */
16
- class FdtCommand extends ask.Command {
17
+ export default class FdtCommand extends ask.Command {
17
18
  /**
18
19
  * @constructor
19
20
  * @param {string} commandName
@@ -62,37 +63,17 @@ class FdtCommand extends ask.Command {
62
63
  return null;
63
64
  }
64
65
 
65
- _getCallSites() {
66
- const _prepareStackTrace = Error.prepareStackTrace;
67
- Error.prepareStackTrace = (_, stack) => stack;
68
- const errorStack = new Error().stack;
69
- Error.prepareStackTrace = _prepareStackTrace;
70
- return errorStack
71
- .map((s) => s.getFileName())
72
- .filter(
73
- (fileName) =>
74
- !FdtCommand[
75
- FILENAMES_TO_SKIP_FOR_SET_CONTROLLER_CALLSITES
76
- ].some(
77
- (fileNameToSkip) =>
78
- fileName && fileName.endsWith(fileNameToSkip)
79
- )
80
- );
81
- }
82
-
83
66
  _createLazyLoadController(controllerSource) {
84
- if (
85
- typeof controllerSource === 'string' &&
86
- !path.isAbsolute(controllerSource)
87
- ) {
88
- const callsiteFilename = this._getCallSites()[0];
89
- controllerSource = path.resolve(
90
- path.join(path.dirname(callsiteFilename), controllerSource)
67
+ if (!path.isAbsolute(controllerSource)) {
68
+ throw new Error(
69
+ `Command controller "${controllerSource}" should be registered using an absolute path instead of a relative one.`
91
70
  );
92
71
  }
93
72
 
94
73
  return (...args) => {
95
- return require(controllerSource)(...args);
74
+ return import(pathToFileURL(controllerSource)).then((module) =>
75
+ module.default(...args)
76
+ );
96
77
  };
97
78
  }
98
79
 
@@ -346,5 +327,3 @@ FdtCommand.addFileNameToSkipForSetControllerCallsites(
346
327
  FdtCommand.addFileNameToSkipForSetControllerCallsites(
347
328
  `/${fdtBasename}/src/response/FdtResponse.js`
348
329
  );
349
-
350
- module.exports = FdtCommand;
package/src/FdtLicense.js CHANGED
@@ -1,16 +1,15 @@
1
- 'use strict';
1
+ import compareVersions from 'compare-versions';
2
+ import fs from 'fs';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import requestPromise from 'request-promise-native';
6
+ import util from 'util';
2
7
 
3
- const compareVersions = require('compare-versions');
4
- const fs = require('fs');
5
- const os = require('os');
6
- const path = require('path');
7
- const util = require('util');
8
+ import getParentDirectoryContainingFileSync from './getParentDirectoryContainingFileSync.js';
8
9
 
9
10
  const readFile = util.promisify(fs.readFile);
10
11
  const writeFile = util.promisify(fs.writeFile);
11
12
 
12
- const getParentDirectoryContainingFileSync = require('./getParentDirectoryContainingFileSync');
13
-
14
13
  const DEFAULT_LICENSE_FILENAME = 'fonto.lic';
15
14
 
16
15
  const LICENSE_FILE_ERROR_SOLUTION =
@@ -87,7 +86,7 @@ class ProductVersions {
87
86
  }
88
87
  }
89
88
 
90
- class FdtLicense {
89
+ export default class FdtLicense {
91
90
  constructor(app) {
92
91
  this.app = app;
93
92
 
@@ -419,7 +418,6 @@ class FdtLicense {
419
418
  validateAndUpdateLicenseFile() {
420
419
  return this.getLicenseFileBuffer()
421
420
  .then((licenseFileBuffer) => {
422
- const requestPromise = require('request-promise-native');
423
421
  // Remotely validate the license file.
424
422
  return requestPromise.post(
425
423
  `${this._backendBaseUrl}/license/validate`,
@@ -530,7 +528,6 @@ class FdtLicense {
530
528
  getDataForProducts(productsWithData) {
531
529
  return this.getLicenseFileBuffer()
532
530
  .then((licenseFileBuffer) => {
533
- const requestPromise = require('request-promise-native');
534
531
  // Remotely get the required data.
535
532
  return requestPromise.post(
536
533
  `${this._backendBaseUrl}/product/data`,
@@ -652,7 +649,6 @@ class FdtLicense {
652
649
  sendTelemetry(data) {
653
650
  return this.getLicenseFileBuffer()
654
651
  .then((licenseFileBuffer) => {
655
- const requestPromise = require('request-promise-native');
656
652
  return requestPromise.post(
657
653
  `${this._backendBaseUrl}/telemetry`,
658
654
  {
@@ -705,5 +701,3 @@ class FdtLicense {
705
701
  });
706
702
  }
707
703
  }
708
-
709
- module.exports = FdtLicense;
package/src/FdtTable.js CHANGED
@@ -1,8 +1,6 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const os = require('os');
5
- const path = require('path');
1
+ import fs from 'fs';
2
+ import os from 'os';
3
+ import path from 'path';
6
4
 
7
5
  function escapeCellForTabSeperatedOutput(cell) {
8
6
  if (cell === undefined || cell === null) {
@@ -107,7 +105,7 @@ const exportTransformers = {
107
105
  json: jsonFormatted,
108
106
  };
109
107
 
110
- class FdtTable {
108
+ export default class FdtTable {
111
109
  constructor(moduleRegistration, columns) {
112
110
  this.columns = columns;
113
111
 
@@ -193,5 +191,3 @@ class FdtTable {
193
191
  res.debug(`Exported file: ${exported.length} characters`);
194
192
  }
195
193
  }
196
-
197
- module.exports = FdtTable;
@@ -1,7 +1,7 @@
1
- 'use strict';
2
-
3
- const ask = require('ask-nicely');
4
- const path = require('path');
1
+ import ask from 'ask-nicely';
2
+ import { readFileSync } from 'fs';
3
+ import path from 'path';
4
+ import { pathToFileURL } from 'url';
5
5
 
6
6
  const APP = Symbol('app');
7
7
  const CONTEXTINFORMERS = Symbol('context informers');
@@ -12,7 +12,7 @@ const PACKAGEJSON = Symbol('package.json');
12
12
  * The unified API for registering module functionality with the FDT instance. The callback exposed
13
13
  * by a module will get an instance of ModuleRegistrationApi to register itself with.
14
14
  */
15
- class ModuleRegistrationApi {
15
+ export default class ModuleRegistrationApi {
16
16
  /**
17
17
  * Should not be called by a module.
18
18
  *
@@ -26,7 +26,9 @@ class ModuleRegistrationApi {
26
26
 
27
27
  this[LOCATION] = moduleLocation;
28
28
 
29
- this[PACKAGEJSON] = require(path.join(this[LOCATION], 'package.json'));
29
+ this[PACKAGEJSON] = JSON.parse(
30
+ readFileSync(path.join(this[LOCATION], 'package.json'), 'utf-8')
31
+ );
30
32
 
31
33
  this[CONTEXTINFORMERS] = [];
32
34
 
@@ -40,14 +42,16 @@ class ModuleRegistrationApi {
40
42
  *
41
43
  * @param {...*} extra
42
44
  */
43
- load(...extra) {
44
- const mod = require(this[LOCATION]);
45
+ async load(...extra) {
46
+ const defaultExport = (
47
+ await import(pathToFileURL(path.join(this[LOCATION], 'index.js')))
48
+ ).default;
45
49
 
46
- if (typeof mod !== 'function') {
50
+ if (typeof defaultExport !== 'function') {
47
51
  throw new Error(`${this[PACKAGEJSON].name} is not a function.`);
48
52
  }
49
53
 
50
- mod(this, ...extra);
54
+ defaultExport(this, ...extra);
51
55
  }
52
56
 
53
57
  /**
@@ -161,5 +165,3 @@ class ModuleRegistrationApi {
161
165
  return this[CONTEXTINFORMERS].slice(0);
162
166
  }
163
167
  }
164
-
165
- module.exports = ModuleRegistrationApi;
@@ -1,13 +1,15 @@
1
- 'use strict';
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
2
3
 
3
- const path = require('path');
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
4
6
 
5
- module.exports = function addCoreModulesToApp(app, options) {
7
+ export default async function addCoreModulesToApp(app, options) {
6
8
  // Load modules list from configuration dot-rc file.
7
9
  const moduleConfig = app.config.registerConfig('modules', []);
8
10
 
9
11
  // Load the core module and hide it from listing.
10
- const coreModule = app.enableBuiltInModule(
12
+ const coreModule = await app.enableBuiltInModule(
11
13
  path.join(__dirname, 'modules', 'core'),
12
14
  app,
13
15
  options
@@ -24,4 +26,4 @@ module.exports = function addCoreModulesToApp(app, options) {
24
26
  app.error(`${path.basename(modulePath)} modulefail`, err);
25
27
  }
26
28
  });
27
- };
29
+ }
@@ -1,19 +1,29 @@
1
- 'use strict';
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
2
3
 
3
- const path = require('path');
4
+ import { isPre770Editor } from './editorVersions.js';
4
5
 
5
- const { isPre770Editor } = require('./editorVersions');
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
6
8
 
7
- module.exports = function addModulesToApp(app) {
9
+ export default async function addModulesToApp(app) {
8
10
  // Default modules.
9
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'localization'));
10
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'operations'));
11
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'schema'));
11
+ await app.enableBuiltInModule(
12
+ path.join(__dirname, 'modules', 'localization')
13
+ );
14
+ await app.enableBuiltInModule(
15
+ path.join(__dirname, 'modules', 'operations')
16
+ );
17
+ await app.enableBuiltInModule(path.join(__dirname, 'modules', 'schema'));
12
18
 
13
19
  // Conditional modules based on product license (without actually validating the license).
14
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'connectors'));
15
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'content-quality'));
16
- app.enableBuiltInModule(
20
+ await app.enableBuiltInModule(
21
+ path.join(__dirname, 'modules', 'connectors')
22
+ );
23
+ await app.enableBuiltInModule(
24
+ path.join(__dirname, 'modules', 'content-quality')
25
+ );
26
+ await app.enableBuiltInModule(
17
27
  path.join(__dirname, 'modules', 'document-history')
18
28
  );
19
29
  if (
@@ -25,15 +35,21 @@ module.exports = function addModulesToApp(app) {
25
35
  app.request.fdt.editorRepository.sdkVersion
26
36
  )
27
37
  ) {
28
- app.enableBuiltInModule(
38
+ await app.enableBuiltInModule(
29
39
  path.join(__dirname, 'modules', 'editor-pre-7-7-0')
30
40
  );
31
41
  } else {
32
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'editor'));
42
+ await app.enableBuiltInModule(
43
+ path.join(__dirname, 'modules', 'editor')
44
+ );
33
45
  }
34
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'review'));
35
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'schema-compiler'));
36
- app.enableBuiltInModule(path.join(__dirname, 'modules', 'spell-checker'));
46
+ await app.enableBuiltInModule(path.join(__dirname, 'modules', 'review'));
47
+ await app.enableBuiltInModule(
48
+ path.join(__dirname, 'modules', 'schema-compiler')
49
+ );
50
+ await app.enableBuiltInModule(
51
+ path.join(__dirname, 'modules', 'spell-checker')
52
+ );
37
53
 
38
54
  // Load additional modules from config.json.
39
55
  if (
@@ -44,18 +60,20 @@ module.exports = function addModulesToApp(app) {
44
60
  app.request.fdt.editorRepository.config.developmentToolsModules &&
45
61
  app.request.fdt.editorRepository.path
46
62
  ) {
47
- app.request.fdt.editorRepository.config.developmentToolsModules.forEach(
48
- (developmentToolsModule) => {
49
- const developmentToolsModulePath = path.isAbsolute(
50
- developmentToolsModule
51
- )
52
- ? developmentToolsModule
53
- : path.join(
54
- app.request.fdt.editorRepository.path,
55
- developmentToolsModule
56
- );
57
- app.enableBuiltInModule(developmentToolsModulePath);
58
- }
63
+ await Promise.all(
64
+ app.request.fdt.editorRepository.config.developmentToolsModules.map(
65
+ (developmentToolsModule) => {
66
+ const developmentToolsModulePath = path.isAbsolute(
67
+ developmentToolsModule
68
+ )
69
+ ? developmentToolsModule
70
+ : path.join(
71
+ app.request.fdt.editorRepository.path,
72
+ developmentToolsModule
73
+ );
74
+ return app.enableBuiltInModule(developmentToolsModulePath);
75
+ }
76
+ )
59
77
  );
60
78
  }
61
- };
79
+ }
@@ -1,10 +1,8 @@
1
- 'use strict';
2
-
3
- const fs = require('fs');
4
- const path = require('path');
1
+ import fs from 'fs';
2
+ import path from 'path';
5
3
 
6
4
  /* istanbul ignore next */
7
- module.exports = function createConfigFileInHomedir(options) {
5
+ export default function createConfigFileInHomedir(options) {
8
6
  // Create config file in the homedir, if it does not exist.
9
7
  // Saving to a globally installed package might cause problems.
10
8
  try {
@@ -19,4 +17,4 @@ module.exports = function createConfigFileInHomedir(options) {
19
17
  } catch (_error) {
20
18
  // Do nothing, file might already exist
21
19
  }
22
- };
20
+ }