@squiz/dxp-cli-next 5.33.0-develop.5 → 5.33.0-develop.6

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 (391) hide show
  1. package/bin/dxp.js +6 -1
  2. package/dist/dxp.js +4319 -0
  3. package/package.json +37 -29
  4. package/lib/ApiService.d.ts +0 -39
  5. package/lib/ApiService.js +0 -120
  6. package/lib/ApiService.spec.d.ts +0 -1
  7. package/lib/ApiService.spec.js +0 -182
  8. package/lib/ApplicationConfig.d.ts +0 -7
  9. package/lib/ApplicationConfig.js +0 -38
  10. package/lib/ApplicationConfig.spec.d.ts +0 -1
  11. package/lib/ApplicationConfig.spec.js +0 -84
  12. package/lib/ApplicationStore.d.ts +0 -13
  13. package/lib/ApplicationStore.js +0 -53
  14. package/lib/__tests__/cmp/dev-mode.spec.d.ts +0 -1
  15. package/lib/__tests__/cmp/dev-mode.spec.js +0 -54
  16. package/lib/__tests__/helpers.d.ts +0 -17
  17. package/lib/__tests__/helpers.js +0 -54
  18. package/lib/__tests__/integration/main.spec.d.ts +0 -1
  19. package/lib/__tests__/integration/main.spec.js +0 -45
  20. package/lib/__tests__/smoke/validate.spec.d.ts +0 -1
  21. package/lib/__tests__/smoke/validate.spec.js +0 -37
  22. package/lib/__tests__/unit/cli.d.ts +0 -0
  23. package/lib/__tests__/unit/cli.js +0 -7
  24. package/lib/auth/index.d.ts +0 -3
  25. package/lib/auth/index.js +0 -14
  26. package/lib/auth/login/login.d.ts +0 -22
  27. package/lib/auth/login/login.js +0 -268
  28. package/lib/auth/login/login.spec.d.ts +0 -1
  29. package/lib/auth/login/login.spec.js +0 -179
  30. package/lib/auth/logout/logout.d.ts +0 -3
  31. package/lib/auth/logout/logout.js +0 -115
  32. package/lib/auth/logout/logout.spec.d.ts +0 -1
  33. package/lib/auth/logout/logout.spec.js +0 -67
  34. package/lib/cdp/constants.d.ts +0 -1
  35. package/lib/cdp/constants.js +0 -4
  36. package/lib/cdp/index.d.ts +0 -3
  37. package/lib/cdp/index.js +0 -16
  38. package/lib/cdp/instance/activate/activate.d.ts +0 -5
  39. package/lib/cdp/instance/activate/activate.js +0 -107
  40. package/lib/cdp/instance/activate/activate.spec.d.ts +0 -1
  41. package/lib/cdp/instance/activate/activate.spec.js +0 -274
  42. package/lib/cdp/instance/instanceCommand.d.ts +0 -3
  43. package/lib/cdp/instance/instanceCommand.js +0 -15
  44. package/lib/cdp/schema/deploy/deploy.const.d.ts +0 -5
  45. package/lib/cdp/schema/deploy/deploy.const.js +0 -8
  46. package/lib/cdp/schema/deploy/deploy.d.ts +0 -4
  47. package/lib/cdp/schema/deploy/deploy.js +0 -107
  48. package/lib/cdp/schema/deploy/deploy.spec.d.ts +0 -1
  49. package/lib/cdp/schema/deploy/deploy.spec.js +0 -137
  50. package/lib/cdp/schema/schemaCommand.d.ts +0 -3
  51. package/lib/cdp/schema/schemaCommand.js +0 -15
  52. package/lib/cdp/utils.d.ts +0 -23
  53. package/lib/cdp/utils.js +0 -133
  54. package/lib/cmp/deploy.d.ts +0 -3
  55. package/lib/cmp/deploy.js +0 -124
  56. package/lib/cmp/dev-mode-ui.d.ts +0 -4
  57. package/lib/cmp/dev-mode-ui.js +0 -51
  58. package/lib/cmp/dev-mode.d.ts +0 -4
  59. package/lib/cmp/dev-mode.js +0 -58
  60. package/lib/cmp/edge-components/compiler.d.ts +0 -13
  61. package/lib/cmp/edge-components/compiler.js +0 -55
  62. package/lib/cmp/index.d.ts +0 -3
  63. package/lib/cmp/index.js +0 -18
  64. package/lib/cmp/init.d.ts +0 -3
  65. package/lib/cmp/init.js +0 -105
  66. package/lib/cmp/utils/definitions.d.ts +0 -481
  67. package/lib/cmp/utils/definitions.js +0 -262
  68. package/lib/cmp/utils/definitions.spec.d.ts +0 -1
  69. package/lib/cmp/utils/definitions.spec.js +0 -503
  70. package/lib/constants.d.ts +0 -1
  71. package/lib/constants.js +0 -4
  72. package/lib/datastore/blueprint/add/add.d.ts +0 -3
  73. package/lib/datastore/blueprint/add/add.js +0 -119
  74. package/lib/datastore/blueprint/add/add.spec.d.ts +0 -1
  75. package/lib/datastore/blueprint/add/add.spec.js +0 -134
  76. package/lib/datastore/blueprint/blueprintCommand.d.ts +0 -3
  77. package/lib/datastore/blueprint/blueprintCommand.js +0 -21
  78. package/lib/datastore/blueprint/list/list.d.ts +0 -3
  79. package/lib/datastore/blueprint/list/list.js +0 -76
  80. package/lib/datastore/blueprint/list/list.spec.d.ts +0 -1
  81. package/lib/datastore/blueprint/list/list.spec.js +0 -51
  82. package/lib/datastore/blueprint/rename/rename.d.ts +0 -3
  83. package/lib/datastore/blueprint/rename/rename.js +0 -93
  84. package/lib/datastore/blueprint/rename/rename.spec.d.ts +0 -1
  85. package/lib/datastore/blueprint/rename/rename.spec.js +0 -142
  86. package/lib/datastore/blueprint/update/update.d.ts +0 -3
  87. package/lib/datastore/blueprint/update/update.js +0 -89
  88. package/lib/datastore/blueprint/update/update.spec.d.ts +0 -1
  89. package/lib/datastore/blueprint/update/update.spec.js +0 -99
  90. package/lib/datastore/bundle/bundle.d.ts +0 -3
  91. package/lib/datastore/bundle/bundle.js +0 -176
  92. package/lib/datastore/bundle/bundle.spec.d.ts +0 -1
  93. package/lib/datastore/bundle/bundle.spec.js +0 -94
  94. package/lib/datastore/index.d.ts +0 -3
  95. package/lib/datastore/index.js +0 -16
  96. package/lib/datastore/simulator/add/add.d.ts +0 -3
  97. package/lib/datastore/simulator/add/add.js +0 -125
  98. package/lib/datastore/simulator/add/add.spec.d.ts +0 -1
  99. package/lib/datastore/simulator/add/add.spec.js +0 -114
  100. package/lib/datastore/simulator/clear/clear.d.ts +0 -3
  101. package/lib/datastore/simulator/clear/clear.js +0 -70
  102. package/lib/datastore/simulator/clear/clear.spec.d.ts +0 -1
  103. package/lib/datastore/simulator/clear/clear.spec.js +0 -224
  104. package/lib/datastore/simulator/list/list.d.ts +0 -3
  105. package/lib/datastore/simulator/list/list.js +0 -115
  106. package/lib/datastore/simulator/list/list.spec.d.ts +0 -1
  107. package/lib/datastore/simulator/list/list.spec.js +0 -95
  108. package/lib/datastore/simulator/pause/pause.d.ts +0 -3
  109. package/lib/datastore/simulator/pause/pause.js +0 -84
  110. package/lib/datastore/simulator/pause/pause.spec.d.ts +0 -1
  111. package/lib/datastore/simulator/pause/pause.spec.js +0 -90
  112. package/lib/datastore/simulator/remove/remove.d.ts +0 -3
  113. package/lib/datastore/simulator/remove/remove.js +0 -68
  114. package/lib/datastore/simulator/remove/remove.spec.d.ts +0 -1
  115. package/lib/datastore/simulator/remove/remove.spec.js +0 -224
  116. package/lib/datastore/simulator/resume/resume.d.ts +0 -3
  117. package/lib/datastore/simulator/resume/resume.js +0 -84
  118. package/lib/datastore/simulator/resume/resume.spec.d.ts +0 -1
  119. package/lib/datastore/simulator/resume/resume.spec.js +0 -90
  120. package/lib/datastore/simulator/simulatorCommand.d.ts +0 -3
  121. package/lib/datastore/simulator/simulatorCommand.js +0 -27
  122. package/lib/datastore/simulator/upgrade/upgrade.d.ts +0 -3
  123. package/lib/datastore/simulator/upgrade/upgrade.js +0 -157
  124. package/lib/datastore/simulator/upgrade/upgrade.spec.d.ts +0 -1
  125. package/lib/datastore/simulator/upgrade/upgrade.spec.js +0 -199
  126. package/lib/datastore/simulator/utils.d.ts +0 -29
  127. package/lib/datastore/simulator/utils.js +0 -218
  128. package/lib/datastore/simulator/utils.spec.d.ts +0 -1
  129. package/lib/datastore/simulator/utils.spec.js +0 -201
  130. package/lib/datastore/utils.d.ts +0 -20
  131. package/lib/datastore/utils.js +0 -241
  132. package/lib/datastore/utils.spec.d.ts +0 -1
  133. package/lib/datastore/utils.spec.js +0 -113
  134. package/lib/dxp.d.ts +0 -1
  135. package/lib/dxp.js +0 -57
  136. package/lib/job-runner/index.d.ts +0 -3
  137. package/lib/job-runner/index.js +0 -22
  138. package/lib/job-runner/job/listJobs/listJobs.d.ts +0 -3
  139. package/lib/job-runner/job/listJobs/listJobs.js +0 -66
  140. package/lib/job-runner/job/listJobs/listJobs.spec.d.ts +0 -1
  141. package/lib/job-runner/job/listJobs/listJobs.spec.js +0 -42
  142. package/lib/job-runner/job/uploadJob/uploadJob.d.ts +0 -3
  143. package/lib/job-runner/job/uploadJob/uploadJob.js +0 -56
  144. package/lib/job-runner/job/uploadJob/uploadJob.spec.d.ts +0 -1
  145. package/lib/job-runner/job/uploadJob/uploadJob.spec.js +0 -42
  146. package/lib/job-runner/jobContext/listJobContexts.d.ts +0 -3
  147. package/lib/job-runner/jobContext/listJobContexts.js +0 -66
  148. package/lib/job-runner/jobContext/listJobContexts.spec.d.ts +0 -1
  149. package/lib/job-runner/jobContext/listJobContexts.spec.js +0 -58
  150. package/lib/job-runner/jobExecution/beginJob/beginJob.d.ts +0 -3
  151. package/lib/job-runner/jobExecution/beginJob/beginJob.js +0 -68
  152. package/lib/job-runner/jobExecution/beginJob/beginJob.spec.d.ts +0 -1
  153. package/lib/job-runner/jobExecution/beginJob/beginJob.spec.js +0 -62
  154. package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.d.ts +0 -3
  155. package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.js +0 -67
  156. package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.spec.d.ts +0 -1
  157. package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.spec.js +0 -64
  158. package/lib/job-runner/jobExecution/terminateJob/terminateJob.d.ts +0 -3
  159. package/lib/job-runner/jobExecution/terminateJob/terminateJob.js +0 -64
  160. package/lib/job-runner/jobExecution/terminateJob/terminateJob.spec.d.ts +0 -1
  161. package/lib/job-runner/jobExecution/terminateJob/terminateJob.spec.js +0 -61
  162. package/lib/job-runner/utils.d.ts +0 -19
  163. package/lib/job-runner/utils.js +0 -145
  164. package/lib/job-runner/utils.spec.d.ts +0 -1
  165. package/lib/job-runner/utils.spec.js +0 -116
  166. package/lib/migration/batch-get/batch-get.d.ts +0 -3
  167. package/lib/migration/batch-get/batch-get.js +0 -45
  168. package/lib/migration/batch-get/batch-get.spec.d.ts +0 -1
  169. package/lib/migration/batch-get/batch-get.spec.js +0 -182
  170. package/lib/migration/batch-next/batch-next.d.ts +0 -3
  171. package/lib/migration/batch-next/batch-next.js +0 -60
  172. package/lib/migration/batch-next/batch-next.spec.d.ts +0 -1
  173. package/lib/migration/batch-next/batch-next.spec.js +0 -251
  174. package/lib/migration/batch-revert/batch-revert.d.ts +0 -3
  175. package/lib/migration/batch-revert/batch-revert.js +0 -45
  176. package/lib/migration/batch-revert/batch-revert.spec.d.ts +0 -1
  177. package/lib/migration/batch-revert/batch-revert.spec.js +0 -197
  178. package/lib/migration/create/create.d.ts +0 -3
  179. package/lib/migration/create/create.js +0 -76
  180. package/lib/migration/create/create.spec.d.ts +0 -1
  181. package/lib/migration/create/create.spec.js +0 -308
  182. package/lib/migration/get/get.d.ts +0 -3
  183. package/lib/migration/get/get.js +0 -46
  184. package/lib/migration/get/get.spec.d.ts +0 -1
  185. package/lib/migration/get/get.spec.js +0 -276
  186. package/lib/migration/index.d.ts +0 -3
  187. package/lib/migration/index.js +0 -32
  188. package/lib/migration/list/list.d.ts +0 -3
  189. package/lib/migration/list/list.js +0 -45
  190. package/lib/migration/list/list.spec.d.ts +0 -1
  191. package/lib/migration/list/list.spec.js +0 -139
  192. package/lib/migration/mark-deployed/mark-deployed.d.ts +0 -3
  193. package/lib/migration/mark-deployed/mark-deployed.js +0 -55
  194. package/lib/migration/mark-deployed/mark-deployed.spec.d.ts +0 -1
  195. package/lib/migration/mark-deployed/mark-deployed.spec.js +0 -217
  196. package/lib/migration/next/next.d.ts +0 -3
  197. package/lib/migration/next/next.js +0 -75
  198. package/lib/migration/next/next.spec.d.ts +0 -1
  199. package/lib/migration/next/next.spec.js +0 -254
  200. package/lib/migration/pre/pre.d.ts +0 -3
  201. package/lib/migration/pre/pre.js +0 -54
  202. package/lib/migration/pre/pre.spec.d.ts +0 -1
  203. package/lib/migration/pre/pre.spec.js +0 -269
  204. package/lib/migration/revert/revert.d.ts +0 -3
  205. package/lib/migration/revert/revert.js +0 -47
  206. package/lib/migration/revert/revert.spec.d.ts +0 -1
  207. package/lib/migration/revert/revert.spec.js +0 -153
  208. package/lib/migration/settings/settings.d.ts +0 -3
  209. package/lib/migration/settings/settings.js +0 -63
  210. package/lib/migration/settings/settings.spec.d.ts +0 -1
  211. package/lib/migration/settings/settings.spec.js +0 -339
  212. package/lib/migration/types/common.types.d.ts +0 -60
  213. package/lib/migration/types/common.types.js +0 -19
  214. package/lib/migration/types/createMigration.types.d.ts +0 -48
  215. package/lib/migration/types/createMigration.types.js +0 -2
  216. package/lib/migration/types/getMigration.types.d.ts +0 -9
  217. package/lib/migration/types/getMigration.types.js +0 -2
  218. package/lib/migration/types/index.d.ts +0 -8
  219. package/lib/migration/types/index.js +0 -24
  220. package/lib/migration/types/listMigrations.types.d.ts +0 -2
  221. package/lib/migration/types/listMigrations.types.js +0 -2
  222. package/lib/migration/types/markDeployed.types.d.ts +0 -20
  223. package/lib/migration/types/markDeployed.types.js +0 -2
  224. package/lib/migration/types/nextStage.types.d.ts +0 -31
  225. package/lib/migration/types/nextStage.types.js +0 -2
  226. package/lib/migration/types/preMigration.types.d.ts +0 -10
  227. package/lib/migration/types/preMigration.types.js +0 -2
  228. package/lib/migration/types/revert.types.d.ts +0 -18
  229. package/lib/migration/types/revert.types.js +0 -2
  230. package/lib/migration/types/settings.types.d.ts +0 -15
  231. package/lib/migration/types/settings.types.js +0 -2
  232. package/lib/migration/utils/common.d.ts +0 -53
  233. package/lib/migration/utils/common.js +0 -166
  234. package/lib/migration/utils/common.spec.d.ts +0 -1
  235. package/lib/migration/utils/common.spec.js +0 -236
  236. package/lib/migration/utils/createMigration.d.ts +0 -16
  237. package/lib/migration/utils/createMigration.js +0 -116
  238. package/lib/migration/utils/createMigration.spec.d.ts +0 -1
  239. package/lib/migration/utils/createMigration.spec.js +0 -260
  240. package/lib/migration/utils/getMigration.d.ts +0 -3
  241. package/lib/migration/utils/getMigration.js +0 -46
  242. package/lib/migration/utils/getMigration.spec.d.ts +0 -1
  243. package/lib/migration/utils/getMigration.spec.js +0 -295
  244. package/lib/migration/utils/index.d.ts +0 -10
  245. package/lib/migration/utils/index.js +0 -26
  246. package/lib/migration/utils/listMigrations.d.ts +0 -3
  247. package/lib/migration/utils/listMigrations.js +0 -41
  248. package/lib/migration/utils/listMigrations.spec.d.ts +0 -1
  249. package/lib/migration/utils/listMigrations.spec.js +0 -109
  250. package/lib/migration/utils/loadAssetIdsFromFile.d.ts +0 -9
  251. package/lib/migration/utils/loadAssetIdsFromFile.js +0 -40
  252. package/lib/migration/utils/loadAssetIdsFromFile.spec.d.ts +0 -1
  253. package/lib/migration/utils/loadAssetIdsFromFile.spec.js +0 -91
  254. package/lib/migration/utils/loadStageOptionsFromFile.d.ts +0 -2
  255. package/lib/migration/utils/loadStageOptionsFromFile.js +0 -32
  256. package/lib/migration/utils/loadStageOptionsFromFile.spec.d.ts +0 -1
  257. package/lib/migration/utils/loadStageOptionsFromFile.spec.js +0 -77
  258. package/lib/migration/utils/markComponentsDeployed.d.ts +0 -2
  259. package/lib/migration/utils/markComponentsDeployed.js +0 -37
  260. package/lib/migration/utils/markComponentsDeployed.spec.d.ts +0 -1
  261. package/lib/migration/utils/markComponentsDeployed.spec.js +0 -222
  262. package/lib/migration/utils/nextStage.d.ts +0 -3
  263. package/lib/migration/utils/nextStage.js +0 -55
  264. package/lib/migration/utils/nextStage.spec.d.ts +0 -1
  265. package/lib/migration/utils/nextStage.spec.js +0 -323
  266. package/lib/migration/utils/options.d.ts +0 -18
  267. package/lib/migration/utils/options.js +0 -136
  268. package/lib/migration/utils/options.spec.d.ts +0 -1
  269. package/lib/migration/utils/options.spec.js +0 -115
  270. package/lib/migration/utils/promptForMorphConfirmation.d.ts +0 -5
  271. package/lib/migration/utils/promptForMorphConfirmation.js +0 -55
  272. package/lib/migration/utils/promptForMorphConfirmation.spec.d.ts +0 -1
  273. package/lib/migration/utils/promptForMorphConfirmation.spec.js +0 -101
  274. package/lib/migration/utils/revertMigration.d.ts +0 -3
  275. package/lib/migration/utils/revertMigration.js +0 -58
  276. package/lib/migration/utils/revertMigration.spec.d.ts +0 -1
  277. package/lib/migration/utils/revertMigration.spec.js +0 -210
  278. package/lib/migration/utils/setMigrationSettings.d.ts +0 -2
  279. package/lib/migration/utils/setMigrationSettings.js +0 -52
  280. package/lib/migration/utils/setMigrationSettings.spec.d.ts +0 -1
  281. package/lib/migration/utils/setMigrationSettings.spec.js +0 -163
  282. package/lib/page/index.d.ts +0 -3
  283. package/lib/page/index.js +0 -12
  284. package/lib/page/layouts/deploy/deploy.d.ts +0 -5
  285. package/lib/page/layouts/deploy/deploy.js +0 -157
  286. package/lib/page/layouts/deploy/deploy.spec.d.ts +0 -1
  287. package/lib/page/layouts/deploy/deploy.spec.js +0 -319
  288. package/lib/page/layouts/dev/dev.d.ts +0 -5
  289. package/lib/page/layouts/dev/dev.js +0 -84
  290. package/lib/page/layouts/dev/dev.spec.d.ts +0 -1
  291. package/lib/page/layouts/dev/dev.spec.js +0 -271
  292. package/lib/page/layouts/layouts.d.ts +0 -3
  293. package/lib/page/layouts/layouts.js +0 -17
  294. package/lib/page/layouts/layouts.spec.d.ts +0 -1
  295. package/lib/page/layouts/layouts.spec.js +0 -29
  296. package/lib/page/layouts/validation/index.d.ts +0 -3
  297. package/lib/page/layouts/validation/index.js +0 -9
  298. package/lib/page/layouts/validation/property-consistency.d.ts +0 -7
  299. package/lib/page/layouts/validation/property-consistency.js +0 -92
  300. package/lib/page/layouts/validation/property-consistency.spec.d.ts +0 -1
  301. package/lib/page/layouts/validation/property-consistency.spec.js +0 -307
  302. package/lib/page/layouts/validation/validateLayoutFormat.d.ts +0 -2
  303. package/lib/page/layouts/validation/validateLayoutFormat.js +0 -27
  304. package/lib/page/layouts/validation/validateLayoutFormat.spec.d.ts +0 -1
  305. package/lib/page/layouts/validation/validateLayoutFormat.spec.js +0 -42
  306. package/lib/page/layouts/validation/zone-consistency.d.ts +0 -7
  307. package/lib/page/layouts/validation/zone-consistency.js +0 -50
  308. package/lib/page/layouts/validation/zone-consistency.spec.d.ts +0 -1
  309. package/lib/page/layouts/validation/zone-consistency.spec.js +0 -94
  310. package/lib/page/templates/validation.d.ts +0 -11
  311. package/lib/page/templates/validation.js +0 -30
  312. package/lib/page/templates/validation.spec.d.ts +0 -1
  313. package/lib/page/templates/validation.spec.js +0 -89
  314. package/lib/page/utils/definitions.d.ts +0 -596
  315. package/lib/page/utils/definitions.js +0 -253
  316. package/lib/page/utils/definitions.spec.d.ts +0 -1
  317. package/lib/page/utils/definitions.spec.js +0 -804
  318. package/lib/page/utils/normalize.d.ts +0 -8
  319. package/lib/page/utils/normalize.js +0 -54
  320. package/lib/page/utils/normalize.spec.d.ts +0 -1
  321. package/lib/page/utils/normalize.spec.js +0 -309
  322. package/lib/page/utils/parse-args.d.ts +0 -44
  323. package/lib/page/utils/parse-args.js +0 -119
  324. package/lib/page/utils/parse-args.spec.d.ts +0 -1
  325. package/lib/page/utils/parse-args.spec.js +0 -284
  326. package/lib/page/utils/render.d.ts +0 -51
  327. package/lib/page/utils/render.js +0 -112
  328. package/lib/page/utils/render.spec.d.ts +0 -1
  329. package/lib/page/utils/render.spec.js +0 -134
  330. package/lib/page/utils/server.d.ts +0 -12
  331. package/lib/page/utils/server.js +0 -201
  332. package/lib/page/utils/server.spec.d.ts +0 -1
  333. package/lib/page/utils/server.spec.js +0 -275
  334. package/lib/porter/constants.d.ts +0 -11
  335. package/lib/porter/constants.js +0 -14
  336. package/lib/porter/index.d.ts +0 -3
  337. package/lib/porter/index.js +0 -24
  338. package/lib/porter/port/abort/abort.d.ts +0 -3
  339. package/lib/porter/port/abort/abort.js +0 -80
  340. package/lib/porter/port/abort/abort.spec.d.ts +0 -1
  341. package/lib/porter/port/abort/abort.spec.js +0 -182
  342. package/lib/porter/port/get/get.d.ts +0 -3
  343. package/lib/porter/port/get/get.js +0 -96
  344. package/lib/porter/port/get/get.spec.d.ts +0 -1
  345. package/lib/porter/port/get/get.spec.js +0 -277
  346. package/lib/porter/port/start/start.d.ts +0 -3
  347. package/lib/porter/port/start/start.js +0 -82
  348. package/lib/porter/port/start/start.spec.d.ts +0 -1
  349. package/lib/porter/port/start/start.spec.js +0 -198
  350. package/lib/porter/project/add/add.d.ts +0 -3
  351. package/lib/porter/project/add/add.js +0 -138
  352. package/lib/porter/project/add/add.spec.d.ts +0 -1
  353. package/lib/porter/project/add/add.spec.js +0 -269
  354. package/lib/porter/project/get/get.d.ts +0 -3
  355. package/lib/porter/project/get/get.js +0 -65
  356. package/lib/porter/project/get/get.spec.d.ts +0 -1
  357. package/lib/porter/project/get/get.spec.js +0 -185
  358. package/lib/porter/project/remove/remove.d.ts +0 -3
  359. package/lib/porter/project/remove/remove.js +0 -69
  360. package/lib/porter/project/remove/remove.spec.d.ts +0 -1
  361. package/lib/porter/project/remove/remove.spec.js +0 -201
  362. package/lib/porter/types.d.ts +0 -5
  363. package/lib/porter/types.js +0 -2
  364. package/lib/porter/utils/BuildDXPUrl/BuildDXPUrl.d.ts +0 -4
  365. package/lib/porter/utils/BuildDXPUrl/BuildDXPUrl.js +0 -34
  366. package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.d.ts +0 -1
  367. package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.js +0 -21
  368. package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.spec.d.ts +0 -1
  369. package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.spec.js +0 -52
  370. package/lib/porter/utils/CoreUtils/CoreUtils.d.ts +0 -2
  371. package/lib/porter/utils/CoreUtils/CoreUtils.js +0 -13
  372. package/lib/porter/utils/CoreUtils/CoreUtils.spec.d.ts +0 -1
  373. package/lib/porter/utils/CoreUtils/CoreUtils.spec.js +0 -36
  374. package/lib/porter/utils/DoesPathExist/DoesPathExist.d.ts +0 -1
  375. package/lib/porter/utils/DoesPathExist/DoesPathExist.js +0 -27
  376. package/lib/porter/utils/DoesPathExist/DoesPathExist.spec.d.ts +0 -1
  377. package/lib/porter/utils/DoesPathExist/DoesPathExist.spec.js +0 -40
  378. package/lib/porter/utils/ErrorUtils/ErrorUtils.d.ts +0 -4
  379. package/lib/porter/utils/ErrorUtils/ErrorUtils.js +0 -66
  380. package/lib/porter/utils/ErrorUtils/ErrorUtils.spec.d.ts +0 -1
  381. package/lib/porter/utils/ErrorUtils/ErrorUtils.spec.js +0 -176
  382. package/lib/porter/utils/GetProjectConfig/GetProjectConfig.d.ts +0 -2
  383. package/lib/porter/utils/GetProjectConfig/GetProjectConfig.js +0 -33
  384. package/lib/porter/utils/GetProjectConfig/GetProjectConfig.spec.d.ts +0 -1
  385. package/lib/porter/utils/GetProjectConfig/GetProjectConfig.spec.js +0 -50
  386. package/lib/porter/utils/GetProjectName/GetProjectName.d.ts +0 -4
  387. package/lib/porter/utils/GetProjectName/GetProjectName.js +0 -30
  388. package/lib/porter/utils/GetProjectName/GetProjectName.spec.d.ts +0 -1
  389. package/lib/porter/utils/GetProjectName/GetProjectName.spec.js +0 -91
  390. package/lib/porter/utils/index.d.ts +0 -7
  391. package/lib/porter/utils/index.js +0 -23
@@ -1,804 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const fs = __importStar(require("node:fs/promises"));
36
- const definitions_1 = require("./definitions");
37
- const validation_1 = require("../templates/validation");
38
- jest.mock('node:fs/promises');
39
- describe('loadLayoutDefinition', () => {
40
- const manifestJson = './some-dir/manifest.json';
41
- const pageLayoutYaml = './some-dir/page-layout.yaml';
42
- const jsonContent = JSON.stringify({
43
- name: 'test-layout',
44
- displayName: 'Test Layout',
45
- description: 'A test layout',
46
- zones: [
47
- {
48
- key: 'main',
49
- displayName: 'Main Zone',
50
- description: 'Main content area',
51
- },
52
- ],
53
- properties: {
54
- color: {
55
- title: 'Color',
56
- description: 'Color options',
57
- type: 'string',
58
- enum: ['red', 'blue'],
59
- },
60
- showHeader: {
61
- title: 'Show Header',
62
- description: 'Toggle header visibility',
63
- type: 'boolean',
64
- },
65
- customTitle: {
66
- title: 'Custom Title',
67
- description: 'Enter a custom title',
68
- type: 'string',
69
- },
70
- },
71
- entry: 'template.hbs',
72
- });
73
- // missing "name" field
74
- const jsonContentInvalidLayout = JSON.stringify({
75
- displayName: 'Test Layout',
76
- description: 'A test layout',
77
- zones: [
78
- {
79
- key: 'main',
80
- displayName: 'Main Zone',
81
- description: 'Main content area',
82
- },
83
- ],
84
- properties: {
85
- color: {
86
- title: 'Color',
87
- description: 'Color options',
88
- type: 'string',
89
- enum: ['red', 'blue'],
90
- },
91
- },
92
- entry: 'template.hbs',
93
- });
94
- const yamlContent = `
95
- name: test-layout
96
- displayName: Test Layout
97
- description: A test layout
98
- zones:
99
- main:
100
- displayName: Main Zone
101
- description: Main content area
102
- minNodes: 1
103
- options:
104
- color:
105
- displayName: Color
106
- description: Color options
107
- values: ['red', 'blue']
108
- entry: template.hbs
109
- `;
110
- // missing "name" field
111
- const yamlContentInvalidLayout = `
112
- displayName: Test Layout
113
- description: A test layout
114
- zones:
115
- main:
116
- displayName: Main Zone
117
- description: Main content area
118
- minNodes: 1
119
- options:
120
- color:
121
- displayName: Color
122
- description: Color options
123
- values: ['red', 'blue']
124
- entry: template.hbs
125
- `;
126
- const templateContent = '<div>{{content}}</div>';
127
- beforeEach(() => {
128
- jest.resetAllMocks();
129
- });
130
- it('should load layout definition from manifest JSON file', () => __awaiter(void 0, void 0, void 0, function* () {
131
- fs.readFile.mockImplementation((filePath) => {
132
- if (filePath.endsWith('manifest.json')) {
133
- return jsonContent;
134
- }
135
- if (filePath.endsWith('template.hbs')) {
136
- return templateContent;
137
- }
138
- throw new Error('File not found');
139
- });
140
- const layoutDefinition = yield (0, definitions_1.loadLayoutDefinition)(manifestJson);
141
- expect(layoutDefinition).toEqual({
142
- name: 'test-layout',
143
- displayName: 'Test Layout',
144
- description: 'A test layout',
145
- zones: [
146
- {
147
- key: 'main',
148
- displayName: 'Main Zone',
149
- description: 'Main content area',
150
- },
151
- ],
152
- properties: {
153
- color: {
154
- title: 'Color',
155
- description: 'Color options',
156
- type: 'string',
157
- enum: ['red', 'blue'],
158
- },
159
- showHeader: {
160
- title: 'Show Header',
161
- description: 'Toggle header visibility',
162
- type: 'boolean',
163
- },
164
- customTitle: {
165
- title: 'Custom Title',
166
- description: 'Enter a custom title',
167
- type: 'string',
168
- },
169
- },
170
- template: templateContent,
171
- });
172
- }));
173
- it('should throw validation error if invalid data for manifest JSON', () => __awaiter(void 0, void 0, void 0, function* () {
174
- fs.readFile.mockImplementation((filePath) => {
175
- if (filePath.endsWith('manifest.json')) {
176
- return jsonContentInvalidLayout;
177
- }
178
- if (filePath.endsWith('template.hbs')) {
179
- return templateContent;
180
- }
181
- throw new Error('File not found');
182
- });
183
- yield expect((0, definitions_1.loadLayoutDefinition)(manifestJson)).rejects
184
- .toThrowErrorMatchingInlineSnapshot(`
185
- "Failed loading layout definition: Failed to parse ./some-dir/manifest.json:
186
-
187
- Schema validation failed:
188
- - Required at "name""
189
- `);
190
- }));
191
- it('should throw an error if JSON layout file has invalid manifest JSON', () => __awaiter(void 0, void 0, void 0, function* () {
192
- fs.readFile.mockImplementation((filePath) => {
193
- if (filePath.endsWith('manifest.json')) {
194
- return '{invalid: json';
195
- }
196
- if (filePath.endsWith('template.hbs')) {
197
- return templateContent;
198
- }
199
- throw new Error('File not found');
200
- });
201
- yield expect((0, definitions_1.loadLayoutDefinition)(manifestJson)).rejects.toThrowErrorMatchingInlineSnapshot('"Failed loading layout definition: Failed to parse ./some-dir/manifest.json: Expected property name or \'}\' in JSON at position 1 (line 1 column 2)"');
202
- }));
203
- it('should throw an error if JSON layout file uses single quotes instead of double quotes', () => __awaiter(void 0, void 0, void 0, function* () {
204
- fs.readFile.mockImplementation((filePath) => {
205
- if (filePath.endsWith('manifest.json')) {
206
- // Single quotes are not valid JSON - only double quotes are allowed for string values
207
- return `{
208
- "name": 'test-layout',
209
- "displayName": "Test Layout",
210
- "entry": "template.hbs",
211
- "zones": []
212
- }`;
213
- }
214
- if (filePath.endsWith('template.hbs')) {
215
- return templateContent;
216
- }
217
- throw new Error('File not found');
218
- });
219
- yield expect((0, definitions_1.loadLayoutDefinition)(manifestJson)).rejects.toThrowErrorMatchingInlineSnapshot('"Failed loading layout definition: Failed to parse ./some-dir/manifest.json: Unexpected token \'\'\', ..." "name": \'test-layo"... is not valid JSON"');
220
- }));
221
- it('should throw an error if JSON layout file has duplicate keys', () => __awaiter(void 0, void 0, void 0, function* () {
222
- fs.readFile.mockImplementation((filePath) => {
223
- if (filePath.endsWith('manifest.json')) {
224
- return `{
225
- "name": "test-layout",
226
- "displayName": "Test Layout",
227
- "entry": "template.hbs",
228
- "zones": [],
229
- "name": "test-layout"
230
- }`;
231
- }
232
- if (filePath.endsWith('template.hbs')) {
233
- return templateContent;
234
- }
235
- throw new Error('File not found');
236
- });
237
- yield expect((0, definitions_1.loadLayoutDefinition)(manifestJson)).rejects
238
- .toThrowErrorMatchingInlineSnapshot(`
239
- "Failed loading layout definition: Failed to parse ./some-dir/manifest.json: Map keys must be unique at line 6, column 9:
240
-
241
- "zones": [],
242
- "name": "test-layout"
243
- ^
244
- "
245
- `);
246
- }));
247
- it('should throw an error if layout file do not have valid extension', () => __awaiter(void 0, void 0, void 0, function* () {
248
- yield expect((0, definitions_1.loadLayoutDefinition)('/foo/manifest.html')).rejects.toThrow('Layout file must have a valid extension: [yaml|json]');
249
- }));
250
- it('should throw an error if template file is not found', () => __awaiter(void 0, void 0, void 0, function* () {
251
- fs.readFile.mockImplementation((filePath) => {
252
- if (filePath.endsWith('manifest.json')) {
253
- return jsonContent;
254
- }
255
- throw Error('File not found');
256
- });
257
- yield expect((0, definitions_1.loadLayoutDefinition)(manifestJson)).rejects.toThrow('Failed loading layout definition: Failed loading template file "template.hbs": File not found');
258
- }));
259
- it('should load layout definition without options and maxNodes from manifest JSON file', () => __awaiter(void 0, void 0, void 0, function* () {
260
- const jsonContentWithoutOptionsAndMaxNodes = JSON.stringify({
261
- name: 'test-layout',
262
- displayName: 'Test Layout',
263
- description: 'A test layout',
264
- zones: [
265
- {
266
- key: 'main',
267
- displayName: 'Main Zone',
268
- description: 'Main content area',
269
- },
270
- {
271
- key: 'sidebar',
272
- displayName: 'Sidebar Zone',
273
- description: 'Sidebar content area',
274
- },
275
- ],
276
- entry: 'template.hbs',
277
- });
278
- fs.readFile.mockImplementation((filePath) => {
279
- if (filePath.endsWith('manifest.json')) {
280
- return jsonContentWithoutOptionsAndMaxNodes;
281
- }
282
- if (filePath.endsWith('template.hbs')) {
283
- return templateContent;
284
- }
285
- throw new Error('File not found');
286
- });
287
- const layoutDefinition = yield (0, definitions_1.loadLayoutDefinition)(manifestJson);
288
- expect(layoutDefinition).toEqual({
289
- name: 'test-layout',
290
- displayName: 'Test Layout',
291
- description: 'A test layout',
292
- zones: [
293
- {
294
- key: 'main',
295
- displayName: 'Main Zone',
296
- description: 'Main content area',
297
- },
298
- {
299
- key: 'sidebar',
300
- displayName: 'Sidebar Zone',
301
- description: 'Sidebar content area',
302
- },
303
- ],
304
- template: templateContent,
305
- });
306
- }));
307
- describe('YAML format (deprecated)', () => {
308
- it('should load layout definition from YAML file', () => __awaiter(void 0, void 0, void 0, function* () {
309
- fs.readFile.mockImplementation((filePath) => {
310
- if (filePath.endsWith('page-layout.yaml')) {
311
- return yamlContent;
312
- }
313
- if (filePath.endsWith('template.hbs')) {
314
- return templateContent;
315
- }
316
- throw new Error('File not found');
317
- });
318
- const layoutDefinition = yield (0, definitions_1.loadLayoutDefinition)(pageLayoutYaml);
319
- expect(layoutDefinition).toEqual({
320
- name: 'test-layout',
321
- displayName: 'Test Layout',
322
- description: 'A test layout',
323
- zones: [
324
- {
325
- key: 'main',
326
- displayName: 'Main Zone',
327
- description: 'Main content area',
328
- },
329
- ],
330
- properties: {
331
- color: {
332
- title: 'Color',
333
- description: 'Color options',
334
- type: 'string',
335
- enum: ['red', 'blue'],
336
- },
337
- },
338
- template: templateContent,
339
- });
340
- }));
341
- it('should throw validation error if invalid data for YAML', () => __awaiter(void 0, void 0, void 0, function* () {
342
- fs.readFile.mockImplementation((filePath) => {
343
- if (filePath.endsWith('page-layout.yaml')) {
344
- return yamlContentInvalidLayout;
345
- }
346
- if (filePath.endsWith('template.hbs')) {
347
- return templateContent;
348
- }
349
- throw new Error('File not found');
350
- });
351
- yield expect((0, definitions_1.loadLayoutDefinition)(pageLayoutYaml)).rejects
352
- .toThrowErrorMatchingInlineSnapshot(`
353
- "Failed loading layout definition: Failed to parse ./some-dir/page-layout.yaml:
354
-
355
- Schema validation failed:
356
- - Required at "name""
357
- `);
358
- }));
359
- it('should throw an error if YAML contains properties (instead of options)', () => __awaiter(void 0, void 0, void 0, function* () {
360
- const yamlContentWithProperties = `
361
- name: test-layout
362
- displayName: Test Layout
363
- description: A test layout
364
- zones:
365
- main:
366
- displayName: Main Zone
367
- description: Main content area
368
- properties:
369
- color:
370
- title: Color
371
- description: Color options
372
- type: string
373
- enum: ['red', 'blue']
374
- entry: template.hbs
375
- `;
376
- fs.readFile.mockImplementation((filePath) => {
377
- if (filePath.endsWith('page-layout.yaml')) {
378
- return yamlContentWithProperties;
379
- }
380
- if (filePath.endsWith('template.hbs')) {
381
- return templateContent;
382
- }
383
- throw new Error('File not found');
384
- });
385
- yield expect((0, definitions_1.loadLayoutDefinition)(pageLayoutYaml)).rejects
386
- .toThrowErrorMatchingInlineSnapshot(`
387
- "Failed loading layout definition: Failed to parse ./some-dir/page-layout.yaml:
388
-
389
- Schema validation failed:
390
- - Unrecognized key(s) in object: 'properties'"
391
- `);
392
- }));
393
- it('should throw an error if YAML layout file has invalid YAML', () => __awaiter(void 0, void 0, void 0, function* () {
394
- fs.readFile.mockImplementation((filePath) => {
395
- if (filePath.endsWith('page-layout.yaml')) {
396
- return 'name: invalid yaml, entry: template.hbs';
397
- }
398
- if (filePath.endsWith('template.hbs')) {
399
- return templateContent;
400
- }
401
- throw new Error('File not found');
402
- });
403
- yield expect((0, definitions_1.loadLayoutDefinition)(pageLayoutYaml)).rejects
404
- .toThrowErrorMatchingInlineSnapshot(`
405
- "Failed loading layout definition: Failed to parse ./some-dir/page-layout.yaml: Nested mappings are not allowed in compact mappings at line 1, column 7:
406
-
407
- name: invalid yaml, entry: template.hbs
408
- ^
409
- "
410
- `);
411
- }));
412
- it('should load layout definition without options field from YAML file', () => __awaiter(void 0, void 0, void 0, function* () {
413
- const yamlContentWithoutOptions = `
414
- name: test-layout
415
- displayName: Test Layout
416
- description: A test layout
417
- zones:
418
- main:
419
- displayName: Main Zone
420
- description: Main content area
421
- minNodes: 1
422
- entry: template.hbs
423
- `;
424
- fs.readFile.mockImplementation((filePath) => {
425
- if (filePath.endsWith('page-layout.yaml')) {
426
- return yamlContentWithoutOptions;
427
- }
428
- if (filePath.endsWith('template.hbs')) {
429
- return templateContent;
430
- }
431
- throw new Error('File not found');
432
- });
433
- const layoutDefinition = yield (0, definitions_1.loadLayoutDefinition)(pageLayoutYaml);
434
- expect(layoutDefinition).toEqual({
435
- name: 'test-layout',
436
- displayName: 'Test Layout',
437
- description: 'A test layout',
438
- zones: [
439
- {
440
- key: 'main',
441
- displayName: 'Main Zone',
442
- description: 'Main content area',
443
- },
444
- ],
445
- template: templateContent,
446
- });
447
- }));
448
- it('should load layout definition without maxNodes in zones from YAML file', () => __awaiter(void 0, void 0, void 0, function* () {
449
- const yamlContentWithoutMaxNodes = `
450
- name: test-layout
451
- displayName: Test Layout
452
- description: A test layout
453
- zones:
454
- main:
455
- displayName: Main Zone
456
- description: Main content area
457
- minNodes: 1
458
- sidebar:
459
- displayName: Sidebar Zone
460
- description: Sidebar content area
461
- minNodes: 0
462
- entry: template.hbs
463
- `;
464
- fs.readFile.mockImplementation((filePath) => {
465
- if (filePath.endsWith('page-layout.yaml')) {
466
- return yamlContentWithoutMaxNodes;
467
- }
468
- if (filePath.endsWith('template.hbs')) {
469
- return templateContent;
470
- }
471
- throw new Error('File not found');
472
- });
473
- const layoutDefinition = yield (0, definitions_1.loadLayoutDefinition)(pageLayoutYaml);
474
- expect(layoutDefinition).toEqual({
475
- name: 'test-layout',
476
- displayName: 'Test Layout',
477
- description: 'A test layout',
478
- zones: [
479
- {
480
- key: 'main',
481
- displayName: 'Main Zone',
482
- description: 'Main content area',
483
- },
484
- {
485
- key: 'sidebar',
486
- displayName: 'Sidebar Zone',
487
- description: 'Sidebar content area',
488
- },
489
- ],
490
- template: templateContent,
491
- });
492
- }));
493
- });
494
- });
495
- describe('LayoutDefinitionParse', () => {
496
- describe('V1 format - zones objects and options (deprecated)', () => {
497
- it('should not allow empty zones object', () => {
498
- expect(() => definitions_1.InputLayoutDefinitionV1.parse({
499
- name: 'test-layout',
500
- displayName: 'Test Layout',
501
- description: 'A test layout',
502
- entry: 'template.hbs',
503
- zones: {},
504
- })).toThrow();
505
- });
506
- it('should allow zone.minNodes to be undefined', () => {
507
- const layoutDefinition = definitions_1.InputLayoutDefinitionV1.parse({
508
- name: 'test-layout',
509
- displayName: 'Test Layout',
510
- description: 'A test layout',
511
- entry: 'template.hbs',
512
- zones: {
513
- main: {
514
- displayName: 'Main Zone',
515
- description: 'Main content area',
516
- },
517
- },
518
- });
519
- expect(layoutDefinition.zones.main.minNodes).toBe(0);
520
- });
521
- describe('option schema validation', () => {
522
- it('should accept specified valueTypes', () => {
523
- var _a, _b, _c;
524
- const layoutDefinition = definitions_1.InputLayoutDefinitionV1.parse({
525
- name: 'test-layout',
526
- displayName: 'Test Layout',
527
- description: 'A test layout',
528
- entry: 'template.hbs',
529
- zones: {
530
- main: {
531
- displayName: 'Main Zone',
532
- description: 'Main content area',
533
- },
534
- },
535
- options: {
536
- theme: {
537
- displayName: 'Theme',
538
- description: 'Color theme',
539
- valueType: 'string-enum',
540
- values: ['light', 'dark'],
541
- },
542
- showSidebar: {
543
- displayName: 'Show Sidebar',
544
- description: 'Toggle sidebar',
545
- valueType: 'boolean',
546
- },
547
- customCss: {
548
- displayName: 'Custom CSS',
549
- description: 'Enter custom CSS',
550
- valueType: 'text',
551
- },
552
- },
553
- });
554
- expect((_a = layoutDefinition.options) === null || _a === void 0 ? void 0 : _a.theme.valueType).toBe('string-enum');
555
- expect((_b = layoutDefinition.options) === null || _b === void 0 ? void 0 : _b.showSidebar.valueType).toBe('boolean');
556
- expect((_c = layoutDefinition.options) === null || _c === void 0 ? void 0 : _c.customCss.valueType).toBe('text');
557
- });
558
- it('should reject invalid valueType', () => {
559
- expect(() => definitions_1.InputLayoutDefinitionV1.parse({
560
- name: 'test-layout',
561
- displayName: 'Test Layout',
562
- description: 'A test layout',
563
- entry: 'template.hbs',
564
- zones: {
565
- main: {
566
- displayName: 'Main Zone',
567
- description: 'Main content area',
568
- },
569
- },
570
- options: {
571
- badOption: {
572
- displayName: 'Bad Option',
573
- description: 'Invalid valueType',
574
- valueType: 'INVALID_TYPE',
575
- },
576
- },
577
- })).toThrow();
578
- });
579
- it('should allow valueType and values to be optional', () => {
580
- var _a, _b, _c, _d, _e, _f, _g, _h;
581
- const layoutDefinition = definitions_1.InputLayoutDefinitionV1.parse({
582
- name: 'test-layout',
583
- displayName: 'Test Layout',
584
- description: 'A test layout',
585
- entry: 'template.hbs',
586
- zones: {
587
- main: {
588
- displayName: 'Main Zone',
589
- description: 'Main content area',
590
- },
591
- },
592
- options: {
593
- withBoth: {
594
- displayName: 'With Both',
595
- description: 'Has valueType and values',
596
- valueType: 'string-enum',
597
- values: ['option1', 'option2'],
598
- },
599
- withValueTypeOnly: {
600
- displayName: 'With ValueType Only',
601
- description: 'Has valueType but no values',
602
- valueType: 'boolean',
603
- },
604
- withValuesOnly: {
605
- displayName: 'With Values Only',
606
- description: 'Has values but no valueType (legacy)',
607
- values: ['legacy1', 'legacy2'],
608
- },
609
- withNeither: {
610
- displayName: 'With Neither',
611
- description: 'Has neither valueType nor values',
612
- },
613
- },
614
- });
615
- // Schema accepts all combinations - Business logic validation (e.g., boolean/text can't have values) happens on backend and reported in CLI on deploy.
616
- expect((_a = layoutDefinition.options) === null || _a === void 0 ? void 0 : _a.withBoth.valueType).toBe('string-enum');
617
- expect((_b = layoutDefinition.options) === null || _b === void 0 ? void 0 : _b.withBoth.values).toEqual([
618
- 'option1',
619
- 'option2',
620
- ]);
621
- expect((_c = layoutDefinition.options) === null || _c === void 0 ? void 0 : _c.withValueTypeOnly.valueType).toBe('boolean');
622
- expect((_d = layoutDefinition.options) === null || _d === void 0 ? void 0 : _d.withValueTypeOnly.values).toBeUndefined();
623
- expect((_e = layoutDefinition.options) === null || _e === void 0 ? void 0 : _e.withValuesOnly.valueType).toBeUndefined();
624
- expect((_f = layoutDefinition.options) === null || _f === void 0 ? void 0 : _f.withValuesOnly.values).toEqual([
625
- 'legacy1',
626
- 'legacy2',
627
- ]);
628
- expect((_g = layoutDefinition.options) === null || _g === void 0 ? void 0 : _g.withNeither.valueType).toBeUndefined();
629
- expect((_h = layoutDefinition.options) === null || _h === void 0 ? void 0 : _h.withNeither.values).toBeUndefined();
630
- });
631
- it('should reject properties (instead of options)', () => {
632
- expect(() => definitions_1.InputLayoutDefinitionV1.parse({
633
- name: 'test-layout',
634
- displayName: 'Test Layout',
635
- description: 'A test layout',
636
- entry: 'template.hbs',
637
- zones: {
638
- main: {
639
- displayName: 'Main Zone',
640
- description: 'Main content area',
641
- },
642
- },
643
- properties: {
644
- color: {
645
- title: 'Color',
646
- description: 'Color options',
647
- type: 'string',
648
- enum: ['red', 'blue'],
649
- },
650
- },
651
- })).toThrow();
652
- });
653
- });
654
- });
655
- describe('V2 format - zones arrays and properties', () => {
656
- it('should not allow empty zones array', () => {
657
- expect(() => definitions_1.InputLayoutDefinitionV2.parse({
658
- name: 'test-layout',
659
- displayName: 'Test Layout',
660
- description: 'A test layout',
661
- entry: 'template.hbs',
662
- zones: [],
663
- })).toThrow();
664
- });
665
- it('should not allow minNodes to be defined in a zone', () => {
666
- expect(() => definitions_1.InputLayoutDefinitionV2.parse({
667
- name: 'test-layout',
668
- displayName: 'Test Layout',
669
- description: 'A test layout',
670
- entry: 'template.hbs',
671
- zones: [
672
- {
673
- key: 'main',
674
- displayName: 'Main Zone',
675
- description: 'Main content area',
676
- minNodes: 1,
677
- },
678
- ],
679
- })).toThrow();
680
- });
681
- describe('property schema validation', () => {
682
- it('should accept specified types', () => {
683
- var _a, _b, _c;
684
- const layoutDefinition = definitions_1.InputLayoutDefinitionV2.parse({
685
- name: 'test-layout',
686
- displayName: 'Test Layout',
687
- description: 'A test layout',
688
- entry: 'template.hbs',
689
- zones: [
690
- {
691
- key: 'main',
692
- displayName: 'Main Zone',
693
- description: 'Main content area',
694
- },
695
- ],
696
- properties: {
697
- theme: {
698
- title: 'Theme',
699
- description: 'Color theme',
700
- type: 'string',
701
- enum: ['light', 'dark'],
702
- },
703
- showSidebar: {
704
- title: 'Show Sidebar',
705
- description: 'Toggle sidebar',
706
- type: 'boolean',
707
- },
708
- customCss: {
709
- title: 'Custom CSS',
710
- description: 'Enter custom CSS',
711
- type: 'string',
712
- },
713
- },
714
- });
715
- expect((_a = layoutDefinition.properties) === null || _a === void 0 ? void 0 : _a.theme.type).toBe('string');
716
- expect((_b = layoutDefinition.properties) === null || _b === void 0 ? void 0 : _b.showSidebar.type).toBe('boolean');
717
- expect((_c = layoutDefinition.properties) === null || _c === void 0 ? void 0 : _c.customCss.type).toBe('string');
718
- });
719
- it('should reject invalid type', () => {
720
- expect(() => definitions_1.InputLayoutDefinitionV2.parse({
721
- name: 'test-layout',
722
- displayName: 'Test Layout',
723
- description: 'A test layout',
724
- entry: 'template.hbs',
725
- zones: [
726
- {
727
- key: 'main',
728
- displayName: 'Main Zone',
729
- description: 'Main content area',
730
- },
731
- ],
732
- properties: {
733
- badProperty: {
734
- title: 'Bad Property',
735
- description: 'Invalid type',
736
- type: 'INVALID_TYPE',
737
- },
738
- },
739
- })).toThrow();
740
- });
741
- });
742
- });
743
- });
744
- describe('validateTemplateFile', () => {
745
- describe('valid templates', () => {
746
- it('should validate a simple valid template', () => __awaiter(void 0, void 0, void 0, function* () {
747
- const template = '<div>{{zones.content}}</div>';
748
- const errors = yield (0, validation_1.validateTemplateFile)(template);
749
- expect(errors).toHaveLength(0);
750
- }));
751
- it('should validate a complex valid template', () => __awaiter(void 0, void 0, void 0, function* () {
752
- const template = `
753
- <div class="layout">
754
- {{#if zones.header}}
755
- <header>{{zones.header}}</header>
756
- {{/if}}
757
- <main>{{zones.content}}</main>
758
- {{#each zones.sidebar}}
759
- <aside>{{this}}</aside>
760
- {{/each}}
761
- </div>
762
- `;
763
- const errors = yield (0, validation_1.validateTemplateFile)(template);
764
- expect(errors).toHaveLength(0);
765
- }));
766
- it('should validate template with options', () => __awaiter(void 0, void 0, void 0, function* () {
767
- const template = '<div class="{{options.theme}}">{{zones.content}}</div>';
768
- const errors = yield (0, validation_1.validateTemplateFile)(template);
769
- expect(errors).toHaveLength(0);
770
- }));
771
- it('should allow empty template', () => __awaiter(void 0, void 0, void 0, function* () {
772
- const template = '';
773
- const errors = yield (0, validation_1.validateTemplateFile)(template);
774
- expect(errors).toHaveLength(0);
775
- }));
776
- });
777
- describe('invalid templates', () => {
778
- it('should detect top-level HTML tags', () => __awaiter(void 0, void 0, void 0, function* () {
779
- const template = '<html><body>{{zones.content}}</body></html>';
780
- const errors = yield (0, validation_1.validateTemplateFile)(template);
781
- expect(errors.length).toBeGreaterThan(0);
782
- expect(errors).toEqual(expect.arrayContaining([
783
- expect.stringContaining('Template should not contain top-level HTML structure tag: <html>'),
784
- expect.stringContaining('Template should not contain top-level HTML structure tag: <body>'),
785
- ]));
786
- }));
787
- it('should detect DOCTYPE declarations', () => __awaiter(void 0, void 0, void 0, function* () {
788
- const template = '<!DOCTYPE html><div>{{zones.content}}</div>';
789
- const errors = yield (0, validation_1.validateTemplateFile)(template);
790
- expect(errors.length).toBeGreaterThan(0);
791
- expect(errors).toEqual(expect.arrayContaining([
792
- expect.stringContaining('Template should not contain top-level HTML structure tag: <doctype>'),
793
- ]));
794
- }));
795
- });
796
- describe('error handling', () => {
797
- it('should handle null template gracefully', () => __awaiter(void 0, void 0, void 0, function* () {
798
- // Test with a null template
799
- const template = null;
800
- const errors = yield (0, validation_1.validateTemplateFile)(template);
801
- expect(errors).toHaveLength(0);
802
- }));
803
- });
804
- });