@fontoxml/fontoxml-development-tools 3.7.0 → 3.8.1

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 (478) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +0 -0
  2. package/{.prettierrc.js → .prettierrc.cjs} +0 -0
  3. package/README.md +1 -1
  4. package/bin/development-tools.js +8 -8
  5. package/index.js +4 -6
  6. package/npm-shrinkwrap.json +938 -5226
  7. package/package.json +4 -3
  8. package/src/App.js +60 -36
  9. package/src/AssertableWritableStream.js +4 -9
  10. package/src/ConfigManager.js +3 -7
  11. package/src/EditorRepository.js +15 -16
  12. package/src/FdtCommand.js +12 -33
  13. package/src/FdtLicense.js +8 -14
  14. package/src/FdtTable.js +4 -8
  15. package/src/ModuleRegistrationApi.js +14 -12
  16. package/src/addCoreModulesToApp.js +7 -5
  17. package/src/addModulesToApp.js +46 -28
  18. package/src/createConfigFileInHomedir.js +4 -6
  19. package/src/editorVersions.js +4 -10
  20. package/src/enrichRequestObject.js +11 -7
  21. package/src/getParentDirectoryContainingFileSync.js +4 -6
  22. package/src/modules/connectors/index.js +13 -10
  23. package/src/modules/connectors/package.json +2 -1
  24. package/src/modules/connectors/src/command.build.controller.js +13 -15
  25. package/src/modules/connectors/src/command.build.js +11 -4
  26. package/src/modules/connectors/src/command.download-self-contained.controller.js +6 -8
  27. package/src/modules/connectors/src/command.download-self-contained.js +10 -3
  28. package/src/modules/connectors/src/command.init.controller.js +7 -9
  29. package/src/modules/connectors/src/command.init.js +10 -3
  30. package/src/modules/connectors/src/command.run.controller.js +14 -16
  31. package/src/modules/connectors/src/command.run.js +8 -4
  32. package/src/modules/connectors/src/command.upgrade.controller.js +7 -9
  33. package/src/modules/connectors/src/command.upgrade.js +10 -3
  34. package/src/modules/connectors/src/command.versions.controller.js +2 -4
  35. package/src/modules/connectors/src/command.versions.js +10 -3
  36. package/src/modules/connectors/src/utilities/FontoxmlConnectorsManifest.js +2 -6
  37. package/src/modules/connectors/src/utilities/cleanup.js +6 -8
  38. package/src/modules/connectors/src/utilities/constants.js +5 -3
  39. package/src/modules/connectors/src/utilities/copyWhitelistedFiles.js +4 -6
  40. package/src/modules/connectors/src/utilities/executeAndLog.js +4 -5
  41. package/src/modules/connectors/src/utilities/getVerbosityLevel.js +3 -5
  42. package/src/modules/connectors/src/utilities/getWhitelist.js +5 -7
  43. package/src/modules/connectors/src/utilities/setEntryVisibility.js +3 -14
  44. package/src/modules/connectors/src/utilities/validateInstance.js +5 -7
  45. package/src/modules/content-quality/index.js +14 -11
  46. package/src/modules/content-quality/package.json +2 -1
  47. package/src/modules/content-quality/src/command.build.controller.js +13 -15
  48. package/src/modules/content-quality/src/command.build.js +11 -4
  49. package/src/modules/content-quality/src/command.download-self-contained.controller.js +6 -8
  50. package/src/modules/content-quality/src/command.download-self-contained.js +11 -4
  51. package/src/modules/content-quality/src/command.init.controller.js +7 -9
  52. package/src/modules/content-quality/src/command.init.js +11 -4
  53. package/src/modules/content-quality/src/command.run.controller.js +13 -15
  54. package/src/modules/content-quality/src/command.run.js +8 -4
  55. package/src/modules/content-quality/src/command.upgrade.controller.js +7 -9
  56. package/src/modules/content-quality/src/command.upgrade.js +11 -4
  57. package/src/modules/content-quality/src/command.versions.controller.js +2 -4
  58. package/src/modules/content-quality/src/command.versions.js +10 -3
  59. package/src/modules/content-quality/src/utilities/FontoxmlFcqManifest.js +2 -6
  60. package/src/modules/content-quality/src/utilities/cleanup.js +6 -8
  61. package/src/modules/content-quality/src/utilities/constants.js +5 -3
  62. package/src/modules/content-quality/src/utilities/copyWhitelistedFiles.js +4 -6
  63. package/src/modules/content-quality/src/utilities/executeAndLog.js +4 -5
  64. package/src/modules/content-quality/src/utilities/getVerbosityLevel.js +3 -5
  65. package/src/modules/content-quality/src/utilities/getWhitelist.js +5 -7
  66. package/src/modules/content-quality/src/utilities/setEntryVisibility.js +3 -14
  67. package/src/modules/content-quality/src/utilities/validateInstance.js +5 -7
  68. package/src/modules/core/index.js +14 -18
  69. package/src/modules/core/package.json +2 -1
  70. package/src/modules/core/src/command.fdt.js +1 -3
  71. package/src/modules/core/src/command.license.validate.js +1 -3
  72. package/src/modules/core/src/command.module.js +6 -8
  73. package/src/modules/core/src/command.who.js +6 -4
  74. package/src/modules/core/src/precontroller.debug.js +2 -3
  75. package/src/modules/core/src/precontroller.help.js +7 -5
  76. package/src/modules/document-history/index.js +17 -8
  77. package/src/modules/document-history/instanceBuild/Dockerfile +4 -0
  78. package/src/modules/document-history/instanceDevBuild/.env +2 -0
  79. package/src/modules/document-history/instanceDevBuild/docker-compose.yml +9 -0
  80. package/src/modules/document-history/instanceTemplate/.env +7 -0
  81. package/src/modules/document-history/instanceTemplate/Configuration/sx.xml +4 -0
  82. package/src/modules/document-history/package.json +2 -1
  83. package/src/modules/document-history/src/command.build.controller.js +260 -0
  84. package/src/modules/document-history/src/command.build.js +56 -0
  85. package/src/modules/document-history/src/command.download-self-contained.controller.js +6 -8
  86. package/src/modules/document-history/src/command.download-self-contained.js +10 -3
  87. package/src/modules/document-history/src/command.init.controller.js +91 -0
  88. package/src/modules/document-history/src/command.init.js +44 -0
  89. package/src/modules/document-history/src/command.run.controller.js +444 -0
  90. package/src/modules/document-history/src/command.run.js +64 -0
  91. package/src/modules/document-history/src/command.upgrade.controller.js +52 -0
  92. package/src/modules/document-history/src/command.upgrade.js +44 -0
  93. package/src/modules/document-history/src/command.versions.controller.js +2 -4
  94. package/src/modules/document-history/src/command.versions.js +10 -3
  95. package/src/modules/document-history/src/utilities/FontoxmlFdhManifest.js +30 -0
  96. package/src/modules/document-history/src/utilities/cleanup.js +70 -0
  97. package/src/modules/document-history/src/utilities/constants.js +44 -0
  98. package/src/modules/document-history/src/utilities/copyWhitelistedFiles.js +22 -0
  99. package/src/modules/document-history/src/utilities/executeAndLog.js +63 -0
  100. package/src/modules/document-history/src/utilities/getVerbosityLevel.js +11 -0
  101. package/src/modules/document-history/src/utilities/getWhitelist.js +16 -0
  102. package/src/modules/document-history/src/utilities/setEntryVisibility.js +22 -0
  103. package/src/modules/document-history/src/utilities/validateInstance.js +29 -0
  104. package/src/modules/editor/dev-cms/configureFontoSessionMiddleware.js +1 -5
  105. package/src/modules/editor/dev-cms/configureScopeMiddleware.js +3 -5
  106. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetGetRouteHandler.js +1 -3
  107. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetPostRouteHandler.js +3 -5
  108. package/src/modules/editor/dev-cms/connectors-cms-standard/configureAssetPreviewGetRouteHandler.js +1 -3
  109. package/src/modules/editor/dev-cms/connectors-cms-standard/configureBodyParserMiddleware.js +3 -5
  110. package/src/modules/editor/dev-cms/connectors-cms-standard/configureBrowsePostRouteHandler.js +1 -3
  111. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardAssetRouter.js +5 -9
  112. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardBrowseRouter.js +3 -5
  113. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardDocumentRouter.js +13 -15
  114. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardHeartbeatRouter.js +3 -5
  115. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardProxyRouter.js +7 -10
  116. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardReferenceRouter.js +5 -7
  117. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardReviewRouter.js +10 -16
  118. package/src/modules/editor/dev-cms/connectors-cms-standard/configureConnectorsCmsStandardRouter.js +3 -5
  119. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDebugRouteHandler.js +2 -4
  120. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDevelopmentCmsMiddleware.js +3 -3
  121. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentCompareRouteHandler.js +2 -4
  122. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentGetRouteHandler.js +1 -3
  123. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentHistoryGetRouteHandler.js +2 -4
  124. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentLockPutRouteHandler.js +1 -5
  125. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPostRouteHandler.js +4 -4
  126. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPresearchPostRouteHandler.js +3 -7
  127. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPreviewRouteHandler.js +2 -6
  128. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentPutRouteHandler.js +1 -5
  129. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentRevisionGetRouteHandler.js +2 -6
  130. package/src/modules/editor/dev-cms/connectors-cms-standard/configureDocumentStatePostRouteHandler.js +1 -5
  131. package/src/modules/editor/dev-cms/connectors-cms-standard/configureHeartbeatGetRouteHandler.js +1 -5
  132. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceCreatePostRouteHandler.js +2 -6
  133. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceGetPostRouteHandler.js +2 -6
  134. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReferenceMetadataUpdatePatchRouteHandler.js +2 -4
  135. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationGetPostRouteHandler.js +4 -9
  136. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationPostRouteHandler.js +4 -8
  137. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationPutRouteHandler.js +7 -11
  138. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationReplyPostRouteHandler.js +3 -7
  139. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewAnnotationReplyPutRouteHandler.js +5 -9
  140. package/src/modules/editor/dev-cms/connectors-cms-standard/configureReviewStatePostRouteHandler.js +3 -8
  141. package/src/modules/editor/dev-cms/connectors-cms-standard/configureSimulatedDelayMiddleware.js +1 -3
  142. package/src/modules/editor/dev-cms/connectors-cms-standard/configureUploadMiddleware.js +4 -6
  143. package/src/modules/editor/dev-cms/connectors-cms-standard/correlationIdRepository.js +2 -2
  144. package/src/modules/editor/dev-cms/connectors-cms-standard/createMiddleware.js +25 -18
  145. package/src/modules/editor/dev-cms/connectors-cms-standard/getFileHash.js +3 -3
  146. package/src/modules/editor/dev-cms/connectors-cms-standard/referenceRepository.js +10 -3
  147. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/AnnotationDatabase.js +24 -64
  148. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/DebuggingConfiguration.js +1 -3
  149. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/EarlyReturnSymbol.js +1 -1
  150. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/Result.js +6 -14
  151. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/httpStatusCodeHelpers.js +13 -7
  152. package/src/modules/editor/dev-cms/connectors-cms-standard/review-annotations/mapAnnotationResult.js +2 -4
  153. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/DevelopmentCms.js +6 -6
  154. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/FileSystemStore.js +6 -6
  155. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/HistoryStore.js +7 -6
  156. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/MemoryStore.js +3 -3
  157. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/mergeItems.js +2 -2
  158. package/src/modules/editor/dev-cms/connectors-cms-standard/stores/unmergeableRevisionList.js +1 -1
  159. package/src/modules/editor/dev-cms/connectors-dist/configureAuthMiddleware.js +5 -7
  160. package/src/modules/editor/dev-cms/connectors-dist/createMiddleware.js +4 -8
  161. package/src/modules/editor/dev-cms/connectors-health/configureConnectorsHealthRouter.js +3 -7
  162. package/src/modules/editor/dev-cms/connectors-health/configureHealthGetRouteHandler.js +1 -5
  163. package/src/modules/editor/dev-cms/connectors-health/createMiddleware.js +2 -6
  164. package/src/modules/editor/dev-cms/setupDevCms.js +17 -18
  165. package/src/modules/editor/index.js +20 -24
  166. package/src/modules/editor/package.json +2 -1
  167. package/src/modules/editor/src/astHelpers/{addWarningsForRemovedComments.js → addWarningsForRemovedComments.cjs} +0 -0
  168. package/src/modules/editor/src/astHelpers/{getClosestNodeWithOffset.js → getClosestNodeWithOffset.cjs} +0 -0
  169. package/src/modules/editor/src/astHelpers/{getDescendantNodes.js → getDescendantNodes.cjs} +0 -0
  170. package/src/modules/editor/src/astHelpers/{hasMultipleReturnStatements.js → hasMultipleReturnStatements.cjs} +0 -0
  171. package/src/modules/editor/src/astHelpers/{isAmdDefineCallExpression.js → isAmdDefineCallExpression.cjs} +0 -0
  172. package/src/modules/editor/src/astHelpers/{isAmdFactoryReturnStatement.js → isAmdFactoryReturnStatement.cjs} +0 -0
  173. package/src/modules/editor/src/astHelpers/{isInteropDefaultExpressionStatement.js → isInteropDefaultExpressionStatement.cjs} +0 -0
  174. package/src/modules/editor/src/astHelpers/{isInvalidTextLoaderImportDeclaration.js → isInvalidTextLoaderImportDeclaration.cjs} +0 -0
  175. package/src/modules/editor/src/astHelpers/{isRequireToUrlCallExpression.js → isRequireToUrlCallExpression.cjs} +0 -0
  176. package/src/modules/editor/src/astHelpers/{moveComments.js → moveComments.cjs} +0 -0
  177. package/src/modules/editor/src/babelPlugins/{cleanupRegisterXQueryModulePlugin.js → cleanupRegisterXQueryModulePlugin.cjs} +0 -0
  178. package/src/modules/editor/src/babelPlugins/{convertAmdToEsmPlugin.js → convertAmdToEsmPlugin.cjs} +0 -0
  179. package/src/modules/editor/src/babelPlugins/{recastPlugin.js → recastPlugin.cjs} +0 -0
  180. package/src/modules/editor/src/babelPlugins/{rewriteConfigImportsPlugin.js → rewriteConfigImportsPlugin.cjs} +0 -0
  181. package/src/modules/editor/src/babelPlugins/{rewriteImportFileExtensionPlugin.js → rewriteImportFileExtensionPlugin.cjs} +0 -0
  182. package/src/modules/editor/src/babelPlugins/{rewriteInteropDefaultPlugin.js → rewriteInteropDefaultPlugin.cjs} +0 -0
  183. package/src/modules/editor/src/babelPlugins/{rewriteJsonLoaderPlugin.js → rewriteJsonLoaderPlugin.cjs} +0 -0
  184. package/src/modules/editor/src/babelPlugins/{rewriteMainJsImportsPlugin.js → rewriteMainJsImportsPlugin.cjs} +0 -0
  185. package/src/modules/editor/src/babelPlugins/{rewriteSrcPathPlugin.js → rewriteSrcPathPlugin.cjs} +0 -0
  186. package/src/modules/editor/src/babelPlugins/{rewriteSvgLoaderPlugin.js → rewriteSvgLoaderPlugin.cjs} +0 -0
  187. package/src/modules/editor/src/babelPlugins/{validatePlugin.js → validatePlugin.cjs} +0 -0
  188. package/src/modules/editor/src/commands/api/convertEditorWithOutput.js +13 -14
  189. package/src/modules/editor/src/commands/command.build.controller.js +7 -10
  190. package/src/modules/editor/src/commands/command.build.js +10 -3
  191. package/src/modules/editor/src/commands/command.convert.editor.controller.js +7 -9
  192. package/src/modules/editor/src/commands/command.convert.editor.js +10 -3
  193. package/src/modules/editor/src/commands/command.convert.package.controller.js +17 -20
  194. package/src/modules/editor/src/commands/command.convert.package.js +10 -3
  195. package/src/modules/editor/src/commands/command.run.controller.js +44 -55
  196. package/src/modules/editor/src/commands/command.run.js +10 -3
  197. package/src/modules/editor/src/config.js +112 -112
  198. package/src/modules/editor/src/convert.js +3 -9
  199. package/src/modules/editor/src/getAppConfig.js +27 -8
  200. package/src/modules/editor/src/getAppManifest.js +8 -8
  201. package/src/modules/editor/src/getDependenciesInLoadOrder.js +6 -14
  202. package/src/modules/editor/src/getImportsForPackages.js +5 -5
  203. package/src/modules/editor/src/getPatternsForSpecialFileType.js +2 -2
  204. package/src/modules/editor/src/getWebpackConfig.js +25 -23
  205. package/src/modules/editor/src/getWebpackDevMiddlewareConfig.js +2 -2
  206. package/src/modules/editor/src/helpers/WarningsByFilename.js +1 -1
  207. package/src/modules/editor/src/helpers/mergeIndexPageAndManifest.js +4 -4
  208. package/src/modules/editor/src/helpers/normalisePath.js +3 -3
  209. package/src/modules/editor/src/helpers/outputWarningsByFilename.js +4 -4
  210. package/src/modules/editor/src/helpers/prettifyJsFile.js +3 -6
  211. package/src/modules/editor/src/helpers/renameJsxFile.js +4 -4
  212. package/src/modules/editor/src/helpers/transformJsFile.js +24 -10
  213. package/src/modules/editor/src/helpers/updateEditorPackageJson.js +4 -4
  214. package/src/modules/editor/src/helpers/validateJsFile.js +11 -7
  215. package/src/modules/editor/src/helpers/writeJsFileToDisk.js +3 -3
  216. package/src/modules/editor/src/templates/{app-entry.js → app-entry.cjs} +0 -0
  217. package/src/modules/editor/src/webpackLoaders/{generatedLoader.js → generatedLoader.cjs} +12 -3
  218. package/src/modules/editor/src/webpackLoaders/{platformSourceMapLoader.js → platformSourceMapLoader.cjs} +2 -2
  219. package/src/modules/editor/src/webpackLoaders/{symbolLoader.js → symbolLoader.cjs} +0 -0
  220. package/src/modules/editor/src/webpackLoaders/{vendorsSourceMapLoader.js → vendorsSourceMapLoader.cjs} +0 -0
  221. package/src/modules/editor/src/webpackPlugins/CopyPlugin.js +177 -162
  222. package/src/modules/editor/src/webpackPlugins/DependenciesInLoadOrderPlugin.js +2 -6
  223. package/src/modules/editor/src/webpackPlugins/FdtOutputPlugin.js +4 -6
  224. package/src/modules/editor/src/webpackPlugins/RemoveExplicitExtensionResolvePlugin.js +3 -6
  225. package/src/modules/editor/src/webpackPlugins/ResolveImportAliasPlugin.js +2 -4
  226. package/src/modules/editor/src/webpackPlugins/UnitTestPlugin.js +5 -7
  227. package/src/modules/editor/test/dependecyWatching.test.js +11 -12
  228. package/src/modules/editor/test/fixtures.test.js +21 -16
  229. package/src/modules/editor/test/helpers/appMutations/addFilesToPackage.js +4 -4
  230. package/src/modules/editor/test/helpers/appMutations/addFontoManifestToPackage.js +4 -4
  231. package/src/modules/editor/test/helpers/appMutations/addPackage.js +7 -11
  232. package/src/modules/editor/test/helpers/appMutations/generateSpecialFiles.js +2 -2
  233. package/src/modules/editor/test/helpers/appMutations/mutateConfigFontoManifest.js +4 -4
  234. package/src/modules/editor/test/helpers/appMutations/mutatePackageFontoManifest.js +4 -4
  235. package/src/modules/editor/test/helpers/appMutations/removeFilesFromPackage.js +4 -4
  236. package/src/modules/editor/test/helpers/appMutations/removePackage.js +5 -5
  237. package/src/modules/editor/test/helpers/assertFixtureSnapshot.js +8 -6
  238. package/src/modules/editor/test/helpers/createAppStructure.js +8 -4
  239. package/src/modules/editor/test/helpers/createTempDirectory.js +3 -3
  240. package/src/modules/editor/test/helpers/createWebpackWatch.js +21 -22
  241. package/src/modules/editor/test/helpers/normaliseLineEndings.js +2 -2
  242. package/src/modules/editor-pre-7-7-0/index.js +19 -23
  243. package/src/modules/editor-pre-7-7-0/package.json +2 -1
  244. package/src/modules/editor-pre-7-7-0/src/api/addCommentToAstNode.js +6 -9
  245. package/src/modules/editor-pre-7-7-0/src/api/addonsAddDependencies.js +1 -3
  246. package/src/modules/editor-pre-7-7-0/src/api/createMessageTemplate.js +4 -6
  247. package/src/modules/editor-pre-7-7-0/src/api/createPackageDirectoryPath.js +4 -6
  248. package/src/modules/editor-pre-7-7-0/src/api/createPrettifiedCode.js +12 -8
  249. package/src/modules/editor-pre-7-7-0/src/api/downloadEditorSDK.js +3 -5
  250. package/src/modules/editor-pre-7-7-0/src/api/executeAndLog.js +4 -6
  251. package/src/modules/editor-pre-7-7-0/src/api/extractZip.js +4 -6
  252. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabel.js +2 -4
  253. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabels.js +3 -5
  254. package/src/modules/editor-pre-7-7-0/src/api/getAddonLabelsForChanges.js +4 -6
  255. package/src/modules/editor-pre-7-7-0/src/api/getAddonsFromEditorSDK.js +2 -4
  256. package/src/modules/editor-pre-7-7-0/src/api/init/checkEditorDestination.js +2 -4
  257. package/src/modules/editor-pre-7-7-0/src/api/init/createConfigConfiguration.js +13 -11
  258. package/src/modules/editor-pre-7-7-0/src/api/init/createConfigFontoManifest.js +3 -5
  259. package/src/modules/editor-pre-7-7-0/src/api/init/createSchemaExperienceResolver.js +11 -8
  260. package/src/modules/editor-pre-7-7-0/src/api/inquirerPrompts.js +20 -30
  261. package/src/modules/editor-pre-7-7-0/src/api/npmInstall.js +5 -7
  262. package/src/modules/editor-pre-7-7-0/src/api/promptForVersionAndDownloadEditorSDK.js +8 -11
  263. package/src/modules/editor-pre-7-7-0/src/api/schema/buildSchemaExperienceConfigurationModel.js +2 -6
  264. package/src/modules/editor-pre-7-7-0/src/api/schema/checkIfCompiledSchemaOverwritesFiles.js +3 -5
  265. package/src/modules/editor-pre-7-7-0/src/api/schema/compile.js +3 -5
  266. package/src/modules/editor-pre-7-7-0/src/api/schema/createCommentsForElement.js +6 -10
  267. package/src/modules/editor-pre-7-7-0/src/api/schema/createSchemaExperiencePackages.js +13 -15
  268. package/src/modules/editor-pre-7-7-0/src/api/schema/createSchemaPackages.js +7 -11
  269. package/src/modules/editor-pre-7-7-0/src/api/schema/getPrefixByNamespaceUri.js +4 -6
  270. package/src/modules/editor-pre-7-7-0/src/api/schema/getSchemaFontoJson.js +5 -7
  271. package/src/modules/editor-pre-7-7-0/src/api/schema/getVersionedSchemaCompilerBaseUrl.js +4 -5
  272. package/src/modules/editor-pre-7-7-0/src/api/schema/zipHelpers.js +6 -8
  273. package/src/modules/editor-pre-7-7-0/src/api/updateManifest.js +2 -4
  274. package/src/modules/editor-pre-7-7-0/src/api/upgrade/getMajorVersion.js +1 -5
  275. package/src/modules/editor-pre-7-7-0/src/api/upgrade/preprocessData.js +3 -5
  276. package/src/modules/editor-pre-7-7-0/src/api/upgrade/updateConfigFontoManifest.js +2 -4
  277. package/src/modules/editor-pre-7-7-0/src/api/validateAddons.js +1 -3
  278. package/src/modules/editor-pre-7-7-0/src/api/validateManifest.js +1 -3
  279. package/src/modules/editor-pre-7-7-0/src/api/writeAstProgramToFile.js +7 -6
  280. package/src/modules/editor-pre-7-7-0/src/command.addons.controller.js +18 -25
  281. package/src/modules/editor-pre-7-7-0/src/command.addons.js +10 -3
  282. package/src/modules/editor-pre-7-7-0/src/command.build.controller.js +6 -8
  283. package/src/modules/editor-pre-7-7-0/src/command.build.js +10 -3
  284. package/src/modules/editor-pre-7-7-0/src/command.init.controller.js +33 -36
  285. package/src/modules/editor-pre-7-7-0/src/command.init.js +10 -3
  286. package/src/modules/editor-pre-7-7-0/src/command.run.controller.js +6 -8
  287. package/src/modules/editor-pre-7-7-0/src/command.run.js +10 -3
  288. package/src/modules/editor-pre-7-7-0/src/command.schema.compile.controller.js +10 -12
  289. package/src/modules/editor-pre-7-7-0/src/command.schema.compile.js +10 -3
  290. package/src/modules/editor-pre-7-7-0/src/command.upgrade.controller.js +24 -31
  291. package/src/modules/editor-pre-7-7-0/src/command.upgrade.js +10 -3
  292. package/src/modules/editor-pre-7-7-0/src/command.versions.controller.js +2 -4
  293. package/src/modules/editor-pre-7-7-0/src/command.versions.js +10 -3
  294. package/src/modules/editor-pre-7-7-0/test/api/schema/buildSchemaExperienceConfigurationModel.test.js +19 -18
  295. package/src/modules/editor-pre-7-7-0/test/api/schema/createCommentsForElement.test.js +7 -10
  296. package/src/modules/editor-pre-7-7-0/test/api/schema/getPrefixByNamespaceUri.test.js +3 -6
  297. package/src/modules/editor-pre-7-7-0/test/api/schema/testHelpers.js +5 -14
  298. package/src/modules/editor-pre-7-7-0/test/api/schema/zipSchemaSource.test.js +9 -7
  299. package/src/modules/localization/index.js +13 -13
  300. package/src/modules/localization/package.json +2 -1
  301. package/src/modules/localization/src/api/Message.js +3 -3
  302. package/src/modules/localization/src/api/createMessagesTable.js +3 -5
  303. package/src/modules/localization/src/api/deduplicateMessages.js +2 -2
  304. package/src/modules/localization/src/api/extractMessages.js +5 -5
  305. package/src/modules/localization/src/api/getMessagesFromOperation.js +3 -3
  306. package/src/modules/localization/src/api/getMessagesFromSource.js +9 -4
  307. package/src/modules/localization/src/api/getOperationMessages.js +9 -9
  308. package/src/modules/localization/src/api/getSourceMessages.js +9 -8
  309. package/src/modules/localization/src/api/index.js +10 -5
  310. package/src/modules/localization/src/api/loadMessageBundle.js +6 -5
  311. package/src/modules/localization/src/api/{parser.js → parser.cjs} +0 -0
  312. package/src/modules/localization/src/api/promiseUtils.js +1 -1
  313. package/src/modules/localization/src/api/updateMessagesWithTemplate.js +2 -2
  314. package/src/modules/localization/src/command.extract.controller.js +7 -9
  315. package/src/modules/localization/src/command.extract.js +10 -3
  316. package/src/modules/localization/src/command.merge.controller.js +7 -9
  317. package/src/modules/localization/src/command.merge.js +10 -3
  318. package/src/modules/localization/src/command.messages.controller.js +5 -7
  319. package/src/modules/localization/src/command.messages.js +11 -4
  320. package/src/modules/localization/src/command.update.controller.js +8 -10
  321. package/src/modules/localization/src/command.update.js +10 -3
  322. package/src/modules/localization/test/api/Message.test.js +3 -3
  323. package/src/modules/localization/test/api/deduplicateMessages.test.js +4 -5
  324. package/src/modules/localization/test/api/getMessagesFromOperation.test.js +3 -4
  325. package/src/modules/localization/test/api/getMessagesFromSource.test.js +3 -4
  326. package/src/modules/localization/test/api/parser.test.js +3 -2
  327. package/src/modules/localization/test/api/promiseUtils.test.js +2 -2
  328. package/src/modules/localization/test/api/roundtripThroughJson.js +2 -2
  329. package/src/modules/localization/test/api/updateMessagesWithTemplate.test.js +4 -5
  330. package/src/modules/localization/test/command.extract.test.js +11 -10
  331. package/src/modules/localization/test/command.merge.test.js +11 -10
  332. package/src/modules/localization/test/command.messages.test.js +10 -9
  333. package/src/modules/localization/test/command.update.test.js +11 -10
  334. package/src/modules/localization/test/index.test.js +15 -14
  335. package/src/modules/localization/test/promiseUtils.test.js +2 -4
  336. package/src/modules/operations/index.js +5 -6
  337. package/src/modules/operations/package.json +2 -1
  338. package/src/modules/operations/src/api/createOperationsTable.js +3 -5
  339. package/src/modules/operations/src/api/getOperation.js +3 -5
  340. package/src/modules/operations/src/api/getOperations.js +12 -14
  341. package/src/modules/operations/src/command.operation.controller.js +3 -5
  342. package/src/modules/operations/src/command.operation.js +10 -3
  343. package/src/modules/operations/src/command.operations.controller.js +4 -6
  344. package/src/modules/operations/src/command.operations.js +11 -4
  345. package/src/modules/operations/test/command.operation.test.js +10 -9
  346. package/src/modules/operations/test/command.operations.test.js +11 -9
  347. package/src/modules/operations/test/getOperation.test.js +6 -4
  348. package/src/modules/operations/test/getOperations.test.js +6 -4
  349. package/src/modules/operations/test/index.test.js +11 -11
  350. package/src/modules/review/index.js +13 -10
  351. package/src/modules/review/package.json +2 -1
  352. package/src/modules/review/src/command.build.controller.js +13 -15
  353. package/src/modules/review/src/command.build.js +11 -4
  354. package/src/modules/review/src/command.download-self-contained.controller.js +6 -8
  355. package/src/modules/review/src/command.download-self-contained.js +10 -3
  356. package/src/modules/review/src/command.init.controller.js +7 -9
  357. package/src/modules/review/src/command.init.js +10 -3
  358. package/src/modules/review/src/command.run.controller.js +14 -16
  359. package/src/modules/review/src/command.run.js +8 -4
  360. package/src/modules/review/src/command.upgrade.controller.js +8 -10
  361. package/src/modules/review/src/command.upgrade.js +10 -3
  362. package/src/modules/review/src/command.versions.controller.js +2 -4
  363. package/src/modules/review/src/command.versions.js +10 -3
  364. package/src/modules/review/src/utilities/FontoxmlReviewManifest.js +2 -6
  365. package/src/modules/review/src/utilities/cleanup.js +6 -8
  366. package/src/modules/review/src/utilities/constants.js +5 -3
  367. package/src/modules/review/src/utilities/copyWhitelistedFiles.js +4 -6
  368. package/src/modules/review/src/utilities/executeAndLog.js +4 -5
  369. package/src/modules/review/src/utilities/getVerbosityLevel.js +3 -5
  370. package/src/modules/review/src/utilities/getWhitelist.js +5 -7
  371. package/src/modules/review/src/utilities/setEntryVisibility.js +3 -14
  372. package/src/modules/review/src/utilities/validateInstance.js +6 -8
  373. package/src/modules/schema/index.js +16 -24
  374. package/src/modules/schema/package.json +2 -1
  375. package/src/modules/schema/src/api/AttributeSummary.js +2 -4
  376. package/src/modules/schema/src/api/ElementSummary.js +2 -4
  377. package/src/modules/schema/src/api/SchemaSummary.js +11 -10
  378. package/src/modules/schema/src/api/SimpleTypeSummary.js +3 -5
  379. package/src/modules/schema/src/api/createAttributesTable.js +3 -5
  380. package/src/modules/schema/src/api/createElementsTable.js +3 -5
  381. package/src/modules/schema/src/api/createSchemasTable.js +4 -6
  382. package/src/modules/schema/src/api/createSimpleTypesTable.js +3 -5
  383. package/src/modules/schema/src/api/getClosestMatchingSchemaSummary.js +7 -9
  384. package/src/modules/schema/src/api/getSchemaSummaries.js +5 -7
  385. package/src/modules/schema/src/command.attribute.controller.js +3 -5
  386. package/src/modules/schema/src/command.attribute.js +10 -3
  387. package/src/modules/schema/src/command.attributes.controller.js +4 -6
  388. package/src/modules/schema/src/command.attributes.js +11 -4
  389. package/src/modules/schema/src/command.element.controller.js +4 -6
  390. package/src/modules/schema/src/command.element.js +10 -3
  391. package/src/modules/schema/src/command.elements.controller.js +4 -6
  392. package/src/modules/schema/src/command.elements.js +11 -4
  393. package/src/modules/schema/src/command.schemas.controller.js +4 -6
  394. package/src/modules/schema/src/command.schemas.js +11 -4
  395. package/src/modules/schema/src/command.simpletypes.controller.js +4 -6
  396. package/src/modules/schema/src/command.simpletypes.js +11 -4
  397. package/src/modules/schema/src/helpers/renderSimpleType.js +3 -5
  398. package/src/modules/schema/src/helpers/restrictionFormatter.js +2 -4
  399. package/src/modules/schema/test/AttributeSummary.test.js +3 -5
  400. package/src/modules/schema/test/ElementSummary.test.js +3 -5
  401. package/src/modules/schema/test/SchemaSummary.test.js +9 -7
  402. package/src/modules/schema/test/SimpleTypeSummary.test.js +3 -5
  403. package/src/modules/schema/test/command.attribute.test.js +14 -12
  404. package/src/modules/schema/test/command.attributes.test.js +14 -12
  405. package/src/modules/schema/test/command.element.test.js +14 -12
  406. package/src/modules/schema/test/command.elements.test.js +14 -12
  407. package/src/modules/schema/test/command.schemas.test.js +10 -9
  408. package/src/modules/schema/test/command.simpletypes.test.js +10 -9
  409. package/src/modules/schema/test/getClosestMatchingSchemaSummary.test.js +6 -4
  410. package/src/modules/schema/test/getSchemaSummaries.test.js +6 -4
  411. package/src/modules/schema/test/index.test.js +37 -37
  412. package/src/modules/schema/test/renderSimpleType.test.js +12 -13
  413. package/src/modules/schema/test/restrictionFormatter.test.js +3 -5
  414. package/src/modules/schema-compiler/index.js +13 -10
  415. package/src/modules/schema-compiler/package.json +2 -1
  416. package/src/modules/schema-compiler/src/command.build.controller.js +12 -15
  417. package/src/modules/schema-compiler/src/command.build.js +11 -4
  418. package/src/modules/schema-compiler/src/command.download-self-contained.controller.js +6 -8
  419. package/src/modules/schema-compiler/src/command.download-self-contained.js +10 -3
  420. package/src/modules/schema-compiler/src/command.init.controller.js +7 -9
  421. package/src/modules/schema-compiler/src/command.init.js +10 -3
  422. package/src/modules/schema-compiler/src/command.run.controller.js +14 -16
  423. package/src/modules/schema-compiler/src/command.run.js +6 -4
  424. package/src/modules/schema-compiler/src/command.upgrade.controller.js +8 -10
  425. package/src/modules/schema-compiler/src/command.upgrade.js +10 -3
  426. package/src/modules/schema-compiler/src/command.versions.controller.js +2 -4
  427. package/src/modules/schema-compiler/src/command.versions.js +10 -3
  428. package/src/modules/schema-compiler/src/utilities/FontoxmlSchemaCompilerManifest.js +2 -6
  429. package/src/modules/schema-compiler/src/utilities/cleanup.js +6 -8
  430. package/src/modules/schema-compiler/src/utilities/constants.js +5 -3
  431. package/src/modules/schema-compiler/src/utilities/copyWhitelistedFiles.js +4 -6
  432. package/src/modules/schema-compiler/src/utilities/executeAndLog.js +4 -5
  433. package/src/modules/schema-compiler/src/utilities/getVerbosityLevel.js +3 -5
  434. package/src/modules/schema-compiler/src/utilities/getWhitelist.js +5 -7
  435. package/src/modules/schema-compiler/src/utilities/setEntryVisibility.js +3 -14
  436. package/src/modules/schema-compiler/src/utilities/validateInstance.js +6 -8
  437. package/src/modules/spell-checker/index.js +13 -10
  438. package/src/modules/spell-checker/package.json +2 -1
  439. package/src/modules/spell-checker/src/command.build.controller.js +13 -15
  440. package/src/modules/spell-checker/src/command.build.js +11 -4
  441. package/src/modules/spell-checker/src/command.download-self-contained.controller.js +6 -8
  442. package/src/modules/spell-checker/src/command.download-self-contained.js +10 -3
  443. package/src/modules/spell-checker/src/command.init.controller.js +7 -9
  444. package/src/modules/spell-checker/src/command.init.js +10 -3
  445. package/src/modules/spell-checker/src/command.run.controller.js +13 -15
  446. package/src/modules/spell-checker/src/command.run.js +8 -4
  447. package/src/modules/spell-checker/src/command.upgrade.controller.js +8 -10
  448. package/src/modules/spell-checker/src/command.upgrade.js +10 -3
  449. package/src/modules/spell-checker/src/command.versions.controller.js +2 -4
  450. package/src/modules/spell-checker/src/command.versions.js +10 -3
  451. package/src/modules/spell-checker/src/utilities/FontoxmlSpellCheckerManifest.js +2 -6
  452. package/src/modules/spell-checker/src/utilities/cleanup.js +6 -8
  453. package/src/modules/spell-checker/src/utilities/constants.js +5 -3
  454. package/src/modules/spell-checker/src/utilities/copyWhitelistedFiles.js +4 -6
  455. package/src/modules/spell-checker/src/utilities/executeAndLog.js +4 -5
  456. package/src/modules/spell-checker/src/utilities/getVerbosityLevel.js +3 -5
  457. package/src/modules/spell-checker/src/utilities/getWhitelist.js +5 -7
  458. package/src/modules/spell-checker/src/utilities/setEntryVisibility.js +3 -14
  459. package/src/modules/spell-checker/src/utilities/validateInstance.js +6 -8
  460. package/src/response/FdtResponse.js +8 -13
  461. package/src/response/extras.js +3 -5
  462. package/src/response/primitives.js +4 -4
  463. package/test/App.test.js +113 -93
  464. package/test/AssertableWritableStream.test.js +3 -8
  465. package/test/FdtCommand.test.js +9 -7
  466. package/test/FdtTable.test.js +12 -11
  467. package/test/app/invalid-module-1/index.js +1 -1
  468. package/test/app/invalid-module-1/package.json +1 -0
  469. package/test/app/test-module-1/index.js +1 -1
  470. package/test/app/test-module-1/package.json +1 -0
  471. package/test/app/test-module-2/index.js +12 -7
  472. package/test/app/test-module-2/package.json +1 -0
  473. package/test/app/test-module-2/src/testLazyLoadCommand.js +2 -4
  474. package/test/app/test-module-2-duplicate/index.js +1 -3
  475. package/test/app/test-module-2-duplicate/package.json +1 -0
  476. package/test/app-pre-7-7-0/config.js +1 -1
  477. package/test/app-with-configjs/config.js +1 -1
  478. package/test/module.core.test.js +39 -29
@@ -1,6 +1,6 @@
1
- 'use strict';
1
+ import inspector from 'inspector';
2
2
 
3
- module.exports = (moduleRegistration, app) => {
3
+ export default (moduleRegistration, app) => {
4
4
  function debugController(req, res) {
5
5
  const inspect = !!req.options['fdt-inspect'] || process.env.FDT_INSPECT;
6
6
  const inspectAndBreak =
@@ -15,7 +15,6 @@ module.exports = (moduleRegistration, app) => {
15
15
  app.hideStacktraceOnErrors = false;
16
16
 
17
17
  try {
18
- const inspector = require('inspector');
19
18
  inspector.open(undefined, undefined, inspectAndBreak);
20
19
 
21
20
  if (inspectAndBreak) {
@@ -1,15 +1,17 @@
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
- const packageJson = require(path.join(
7
+ const packageJson = path.resolve(
6
8
  __dirname,
7
9
  '..',
8
10
  '..',
9
11
  '..',
10
12
  '..',
11
13
  'package.json'
12
- ));
14
+ );
13
15
 
14
16
  const NO_DESCRIPTION = '<no description>';
15
17
 
@@ -33,7 +35,7 @@ function toOptionRow(option) {
33
35
  ];
34
36
  }
35
37
 
36
- module.exports = (moduleRegistration, app) => {
38
+ export default (moduleRegistration, app) => {
37
39
  function helpController(req, res) {
38
40
  const command = req.command;
39
41
  const isRoot = !command.parent;
@@ -1,18 +1,27 @@
1
- 'use strict';
1
+ import commandBuild from './src/command.build.js';
2
+ import commandDownloadSelfContained from './src/command.download-self-contained.js';
3
+ import commandInit from './src/command.init.js';
4
+ import commandRun from './src/command.run.js';
5
+ import commandUpgrade from './src/command.upgrade.js';
6
+ import commandVersions from './src/command.versions.js';
7
+ import constants from './src/utilities/constants.js';
2
8
 
3
- module.exports = (moduleRegistration) => {
9
+ export default (moduleRegistration) => {
4
10
  const fdhCommand = moduleRegistration
5
- .registerCommand('document-history')
11
+ .registerCommand(constants.COMMAND_PREFIX)
6
12
  .setDescription(
7
13
  'Provides tools for working with Fonto Document History.'
8
14
  )
9
- .addAlias('fdh')
15
+ .addAlias(constants.COMMAND_PREFIX_ALIAS)
16
+
10
17
  .addRequiredProductLicenses(['document-history'])
11
18
  .setHideIfMissingRequiredProductLicenses()
12
19
  .setAsHelpCommand();
13
20
 
14
- [
15
- require('./src/command.download-self-contained.js'),
16
- require('./src/command.versions.js'),
17
- ].forEach((mod) => mod(moduleRegistration, fdhCommand));
21
+ commandBuild(moduleRegistration, fdhCommand);
22
+ commandDownloadSelfContained(moduleRegistration, fdhCommand);
23
+ commandInit(moduleRegistration, fdhCommand);
24
+ commandRun(moduleRegistration, fdhCommand);
25
+ commandUpgrade(moduleRegistration, fdhCommand);
26
+ commandVersions(moduleRegistration, fdhCommand);
18
27
  };
@@ -0,0 +1,4 @@
1
+ FROM ${fdhImage}
2
+
3
+ # copy files
4
+ COPY ./instance .
@@ -0,0 +1,2 @@
1
+ # An empty .env is required since all files specified in the docker-compose must exist.
2
+ # https://github.com/docker/compose/issues/3560
@@ -0,0 +1,9 @@
1
+ version: '3'
2
+ services:
3
+ instance:
4
+ container_name: '${containerName}'
5
+ build: .
6
+ env_file:
7
+ - .env
8
+ ports:
9
+ - '${fdhPort}:80'
@@ -0,0 +1,7 @@
1
+ # WARNING: We recommend not storing this file in version control since it can contain secrets.
2
+
3
+ # Required configuration:
4
+ #Cms__ApiBaseUrl=http://host.docker.internal:8080/connectors/cms/standard/
5
+
6
+ # Optional configuration:
7
+ #Logging__LogLevel__Default=Warning
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <sx:schemaExperience xmlns:sx="http://schemas.fontoxml.com/document-history/2.0/schema-experience.xsd">
3
+ <!-- This is where your schema experience configuration needs to be filled in. See https://documentation.fontoxml.com/latest/configuration-for-document-history-c2092b6378a3 for more information. -->
4
+ </sx:schemaExperience>
@@ -9,5 +9,6 @@
9
9
  "fonto",
10
10
  "fontoxml"
11
11
  ],
12
- "main": "index.js"
12
+ "main": "index.js",
13
+ "type": "module"
13
14
  }
@@ -0,0 +1,260 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+
4
+ import cleanup from './utilities/cleanup.js';
5
+ import constants from './utilities/constants.js';
6
+ import copyWhitelistedFiles from './utilities/copyWhitelistedFiles.js';
7
+ import executeAndLog from './utilities/executeAndLog.js';
8
+ import FontoxmlFdhManifest from './utilities/FontoxmlFdhManifest.js';
9
+ import getVerbosityLevel from './utilities/getVerbosityLevel.js';
10
+ import getWhitelist from './utilities/getWhitelist.js';
11
+ import setEntryVisibility from './utilities/setEntryVisibility.js';
12
+ import validateInstance from './utilities/validateInstance.js';
13
+
14
+ export default function buildCommand(req, res) {
15
+ res.caption(req.command.getLongName());
16
+
17
+ const directoryPath = path.resolve(
18
+ req.options.location ? req.options.location : process.cwd()
19
+ );
20
+ const temporaryDirectoryPath = path.join(
21
+ directoryPath,
22
+ constants.TEMPORARY_BUILD_DIRECTORY_NAME
23
+ );
24
+ const imageName = req.options['image-name']
25
+ ? req.options['image-name']
26
+ : constants.DEFAULT_IMAGE_NAME;
27
+ const imageTag = req.options['image-tag']
28
+ ? req.options['image-tag']
29
+ : constants.DEFAULT_IMAGE_TAG;
30
+ const manifestFilePath = path.join(
31
+ directoryPath,
32
+ constants.MANIFEST_FILENAME
33
+ );
34
+ const verbosityLevel = getVerbosityLevel(
35
+ req.options.verbose,
36
+ req.options.debug
37
+ );
38
+
39
+ let pidToKillOnForceExit = null;
40
+ const setPidToKillOnForceExit = (process) => {
41
+ pidToKillOnForceExit = process && process.pid;
42
+ };
43
+
44
+ // Ensure we cleanup before exiting.
45
+ let stopping = false;
46
+ process.on('SIGINT', (_code) => {
47
+ if (stopping) {
48
+ if (pidToKillOnForceExit) {
49
+ process.kill(pidToKillOnForceExit);
50
+ }
51
+ process.exit();
52
+ return;
53
+ }
54
+
55
+ stopping = true;
56
+ res.log('Gracefully stopping... (press Ctrl+C again to force)');
57
+ return cleanup(
58
+ temporaryDirectoryPath,
59
+ undefined,
60
+ res,
61
+ verbosityLevel
62
+ ).then(process.exit);
63
+ });
64
+
65
+ return (
66
+ validateInstance(directoryPath)
67
+ // Cleanup possible remaining resources from a previous build or run.
68
+ .then(() =>
69
+ cleanup(temporaryDirectoryPath, undefined, res, verbosityLevel)
70
+ )
71
+ .then(() => {
72
+ const destroySpinner = res.spinner(
73
+ `Building the production image "${imageName}:${imageTag}" at "${directoryPath}"...`
74
+ );
75
+
76
+ // Retrieve data for the docker image
77
+ return FontoxmlFdhManifest.fromJsonFile(manifestFilePath).then(
78
+ (manifestObj) => {
79
+ const requestObj = {
80
+ 'document-history': {
81
+ docker: {
82
+ version: manifestObj.fdhVersion,
83
+ },
84
+ },
85
+ };
86
+
87
+ return req.fdt.license
88
+ .getDataForProducts(requestObj)
89
+ .catch((error) => {
90
+ if (error.statusCode === 404) {
91
+ error.solution =
92
+ 'This error might be caused by requesting a nonexistent Fonto Document History version, please check your version.';
93
+ }
94
+ throw error;
95
+ })
96
+ .then((productData) => {
97
+ const dockerData =
98
+ productData.products['document-history']
99
+ .docker;
100
+
101
+ // Create a hidden temporary directory.
102
+ return (
103
+ fs
104
+ .mkdir(temporaryDirectoryPath)
105
+ .then(() =>
106
+ setEntryVisibility(
107
+ temporaryDirectoryPath,
108
+ false
109
+ )
110
+ )
111
+ // Copy the instance files into the temporary directory.
112
+ .then(() => {
113
+ // Rewrite the version in the Dockerfile.
114
+ return fs
115
+ .readFile(
116
+ path.join(
117
+ constants.INSTANCE_BUILD_DIRECTORY_PATH,
118
+ 'Dockerfile'
119
+ ),
120
+ 'utf8'
121
+ )
122
+ .then((dockerContent) =>
123
+ dockerContent.replace(
124
+ '${fdhImage}',
125
+ dockerData.image
126
+ )
127
+ )
128
+ .then((fixedDockerContent) =>
129
+ fs.writeFile(
130
+ path.join(
131
+ temporaryDirectoryPath,
132
+ 'Dockerfile'
133
+ ),
134
+ fixedDockerContent
135
+ )
136
+ );
137
+ })
138
+ .then(() => getWhitelist())
139
+ .then((whitelist) =>
140
+ copyWhitelistedFiles(
141
+ whitelist,
142
+ directoryPath,
143
+ path.join(
144
+ temporaryDirectoryPath,
145
+ 'instance'
146
+ )
147
+ )
148
+ )
149
+
150
+ // Pull the docker image
151
+ .then(() => {
152
+ return executeAndLog(
153
+ res,
154
+ 'docker',
155
+ [
156
+ 'login',
157
+ dockerData.registry,
158
+ '-u',
159
+ dockerData.login,
160
+ '-p',
161
+ dockerData.password,
162
+ ],
163
+ null,
164
+ constants.VERBOSITY_LEVEL_NORMAL,
165
+ false,
166
+ setPidToKillOnForceExit
167
+ )
168
+ .then(() =>
169
+ executeAndLog(
170
+ res,
171
+ 'docker',
172
+ [
173
+ 'pull',
174
+ dockerData.image,
175
+ ],
176
+ null,
177
+ verbosityLevel,
178
+ false,
179
+ setPidToKillOnForceExit
180
+ )
181
+ )
182
+ .then(() =>
183
+ executeAndLog(
184
+ res,
185
+ 'docker',
186
+ [
187
+ 'logout',
188
+ dockerData.registry,
189
+ ],
190
+ null,
191
+ constants.VERBOSITY_LEVEL_NORMAL,
192
+ false,
193
+ setPidToKillOnForceExit
194
+ )
195
+ )
196
+ .catch(() => {
197
+ throw new Error(
198
+ 'Failed to retrieve the image file.'
199
+ );
200
+ });
201
+ })
202
+
203
+ // Build the docker image.
204
+ .then(() =>
205
+ executeAndLog(
206
+ res,
207
+ 'docker',
208
+ [
209
+ 'build',
210
+ '-t',
211
+ `${imageName}:${imageTag}`,
212
+ '.',
213
+ ],
214
+ temporaryDirectoryPath,
215
+ verbosityLevel,
216
+ false,
217
+ setPidToKillOnForceExit
218
+ )
219
+ )
220
+ .then(() =>
221
+ req.fdt.license.sendTelemetry({
222
+ product:
223
+ req.command.parent.name,
224
+ type: 'docker',
225
+ version: manifestObj.fdhVersion,
226
+ action: req.command.name,
227
+ })
228
+ )
229
+ .then(() => destroySpinner())
230
+ );
231
+ });
232
+ }
233
+ );
234
+ })
235
+ // Cleanup temporary directory.
236
+ .then(() =>
237
+ cleanup(temporaryDirectoryPath, undefined, res, verbosityLevel)
238
+ )
239
+ .catch((error) => {
240
+ if (!stopping) {
241
+ res.notice(
242
+ `See our documentation at ${constants.DOCUMENTATION_EXECUTE_ERROR} for help.`
243
+ );
244
+ }
245
+
246
+ return cleanup(
247
+ temporaryDirectoryPath,
248
+ undefined,
249
+ res,
250
+ verbosityLevel
251
+ )
252
+ .then(() => {
253
+ throw error;
254
+ })
255
+ .catch(() => {
256
+ throw error;
257
+ });
258
+ })
259
+ );
260
+ }
@@ -0,0 +1,56 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+
4
+ import constants from './utilities/constants.js';
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
8
+
9
+ export default (moduleRegistration, fdhCommand) => {
10
+ fdhCommand
11
+ .addCommand(
12
+ 'build',
13
+ path.resolve(__dirname, 'command.build.controller.js')
14
+ )
15
+ .setDescription(
16
+ 'Build a Fonto Document History Docker image for production use. Requires Docker to be installed.'
17
+ )
18
+
19
+ .addOption(
20
+ 'image-name',
21
+ 'n',
22
+ `The name of the Docker image which will be created. This defaults to ${constants.DEFAULT_IMAGE_NAME}.`,
23
+ false
24
+ )
25
+ .addOption(
26
+ 'image-tag',
27
+ 't',
28
+ `The tag of the Docker image which will be created. This defaults to ${constants.DEFAULT_IMAGE_TAG}.`,
29
+ false
30
+ )
31
+ .addOption(
32
+ 'location',
33
+ 'l',
34
+ 'The directory where the Fonto Document History instance is located. Defaults to the current working directory.',
35
+ false
36
+ )
37
+ .addOption(
38
+ 'verbose',
39
+ null,
40
+ 'Output default stdout and stderr information.'
41
+ )
42
+ .addOption('debug', null, 'Output all debug information.')
43
+
44
+ .addExample(
45
+ `${moduleRegistration.getAppInfo().name} ${
46
+ constants.COMMAND_PREFIX
47
+ } build`,
48
+ `Build production image "${constants.DEFAULT_IMAGE_NAME}:${constants.DEFAULT_IMAGE_NAME}" using the Fonto Document History instance located at the current working directory.`
49
+ )
50
+ .addExample(
51
+ `${moduleRegistration.getAppInfo().name} ${
52
+ constants.COMMAND_PREFIX
53
+ } build --image-name my-fdh-instance --image-tag 1.0.0 --location /opt/my-instance/`,
54
+ 'Build production image "my-fdh-instance:1.0.0" using the Fonto Document History instance located at "/opt/my-instance/".'
55
+ );
56
+ };
@@ -1,11 +1,9 @@
1
- 'use strict';
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import requestPromise from 'request-promise-native';
4
+ import url from 'url';
2
5
 
3
- const fs = require('fs-extra');
4
- const path = require('path');
5
- const requestPromise = require('request-promise-native');
6
- const url = require('url');
7
-
8
- module.exports = function buildCommand(req, res) {
6
+ export default function buildCommand(req, res) {
9
7
  res.caption(req.command.getLongName());
10
8
 
11
9
  const directoryPath = path.resolve(
@@ -109,4 +107,4 @@ module.exports = function buildCommand(req, res) {
109
107
  );
110
108
  });
111
109
  });
112
- };
110
+ }
@@ -1,10 +1,17 @@
1
- 'use strict';
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
2
3
 
3
- module.exports = (moduleRegistration, connectorsCommand) => {
4
+ const __filename = fileURLToPath(import.meta.url);
5
+ const __dirname = path.dirname(__filename);
6
+
7
+ export default (moduleRegistration, connectorsCommand) => {
4
8
  connectorsCommand
5
9
  .addCommand(
6
10
  'download-self-contained',
7
- './command.download-self-contained.controller'
11
+ path.resolve(
12
+ __dirname,
13
+ 'command.download-self-contained.controller.js'
14
+ )
8
15
  )
9
16
  .addAlias('dsc')
10
17
  .setDescription('Downloads a self-contained build.')
@@ -0,0 +1,91 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+
4
+ import constants from './utilities/constants.js';
5
+ import FontoxmlFdhManifest from './utilities/FontoxmlFdhManifest.js';
6
+ import setEntryVisibility from './utilities/setEntryVisibility.js';
7
+
8
+ export default async function initCommand(req, res) {
9
+ res.caption(req.command.getLongName());
10
+
11
+ // Check if the version exists.
12
+ const sdkVersions = await req.fdt.license.getVersionsForProduct(
13
+ 'document-history'
14
+ );
15
+ const version = req.options.version;
16
+ if (!sdkVersions.includes(version)) {
17
+ throw new Error(
18
+ `Could not initialize for version (${version}), please check if it is a valid version. The latest version is ${sdkVersions.getLatestStable()}, run \`fdt document-history versions\` to get a list of all available versions.`
19
+ );
20
+ }
21
+
22
+ const directoryPath = path.resolve(
23
+ req.options.location ? req.options.location : process.cwd()
24
+ );
25
+ return fs
26
+ .exists(directoryPath)
27
+ .then((exists) => {
28
+ if (!exists) {
29
+ // Create the directory if it does not exist.
30
+ return fs.ensureDir(directoryPath);
31
+ }
32
+ // Ensure the directory is empty if it does exist.
33
+ return fs.readdir(directoryPath).then((files) => {
34
+ if (files.length) {
35
+ throw new Error(
36
+ `The directory "${directoryPath}" is not empty.`
37
+ );
38
+ }
39
+ });
40
+ })
41
+ .then(() => {
42
+ const destroySpinner = res.spinner(
43
+ `Initializing a Fonto Document History instance at "${directoryPath}"...`
44
+ );
45
+ return fs
46
+ .copy(
47
+ constants.INSTANCE_TEMPLATE_DIRECTORY_PATH,
48
+ directoryPath,
49
+ {
50
+ filter: (src, _dest) => {
51
+ const filename = path.basename(src);
52
+ return filename !== '.gitkeep';
53
+ },
54
+ }
55
+ )
56
+ .then(() => {
57
+ const data = new FontoxmlFdhManifest(version);
58
+ const manifest = path.join(
59
+ directoryPath,
60
+ constants.MANIFEST_FILENAME
61
+ );
62
+
63
+ return fs
64
+ .writeJson(manifest, data)
65
+ .then(() => setEntryVisibility(manifest, false));
66
+ })
67
+ .catch((error) => {
68
+ return fs.emptyDir(directoryPath).then(() => {
69
+ destroySpinner();
70
+ throw error;
71
+ });
72
+ })
73
+ .then(() =>
74
+ req.fdt.license.sendTelemetry({
75
+ product: req.command.parent.name,
76
+ type: 'docker',
77
+ version,
78
+ action: req.command.name,
79
+ })
80
+ )
81
+ .then(() => destroySpinner());
82
+ })
83
+ .then(() => {
84
+ res.log(
85
+ 'Complete the configuration before building or running the instance.'
86
+ );
87
+ res.log(
88
+ `See ${constants.DOCUMENTATION_GETTING_STARTED_GUIDE} for more information.`
89
+ );
90
+ });
91
+ }
@@ -0,0 +1,44 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+
4
+ import constants from './utilities/constants.js';
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
8
+
9
+ export default (moduleRegistration, fdhCommand) => {
10
+ fdhCommand
11
+ .addCommand(
12
+ 'init',
13
+ path.resolve(__dirname, 'command.init.controller.js')
14
+ )
15
+ .setDescription(
16
+ 'Initialize a Fonto Document History instance in an empty or nonexistent directory.'
17
+ )
18
+
19
+ .addOption(
20
+ 'location',
21
+ 'l',
22
+ 'The directory where to initialize the instance. If not set this defaults to the current working directory. Note that the directory has to be empty or nonexistent.',
23
+ false
24
+ )
25
+ .addOption(
26
+ 'version',
27
+ null,
28
+ 'The version to initialize with. Can be either a specific version or "nightly". Be warned: nightly can be unstable or may not work at all.',
29
+ true
30
+ )
31
+
32
+ .addExample(
33
+ `${moduleRegistration.getAppInfo().name} ${
34
+ constants.COMMAND_PREFIX
35
+ } init --version x.x.x`,
36
+ 'Initialize a new Fonto Document History instance located at the current working directory.'
37
+ )
38
+ .addExample(
39
+ `${moduleRegistration.getAppInfo().name} ${
40
+ constants.COMMAND_PREFIX
41
+ } init --location /opt/my-instance/ --version x.x.x`,
42
+ 'Initialize a new Fonto Document History instance located at "/opt/my-instance/".'
43
+ );
44
+ };