@vendure/cli 2.2.0-next.7 → 2.2.0

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 (144) hide show
  1. package/dist/cli.js +54 -5
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/add/add.d.ts +1 -2
  4. package/dist/commands/add/add.js +58 -27
  5. package/dist/commands/add/add.js.map +1 -1
  6. package/dist/commands/add/api-extension/add-api-extension.d.ts +9 -0
  7. package/dist/commands/add/api-extension/add-api-extension.js +506 -0
  8. package/dist/commands/add/api-extension/add-api-extension.js.map +1 -0
  9. package/dist/commands/add/api-extension/templates/api-extensions.template.ts +3 -0
  10. package/dist/commands/add/api-extension/templates/crud-resolver.template.ts +109 -0
  11. package/dist/commands/add/api-extension/templates/simple-resolver.template.ts +31 -0
  12. package/dist/commands/add/codegen/add-codegen.d.ts +8 -0
  13. package/dist/commands/add/codegen/add-codegen.js +106 -0
  14. package/dist/commands/add/codegen/add-codegen.js.map +1 -0
  15. package/dist/commands/add/codegen/codegen-config-ref.d.ts +10 -0
  16. package/dist/commands/add/codegen/codegen-config-ref.js +53 -0
  17. package/dist/commands/add/codegen/codegen-config-ref.js.map +1 -0
  18. package/dist/commands/add/codegen/templates/codegen.template.ts +17 -0
  19. package/dist/commands/add/entity/add-entity.d.ts +15 -5
  20. package/dist/commands/add/entity/add-entity.js +130 -23
  21. package/dist/commands/add/entity/add-entity.js.map +1 -1
  22. package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.d.ts +3 -2
  23. package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.js +3 -27
  24. package/dist/commands/add/entity/codemods/add-entity-to-plugin/add-entity-to-plugin.js.map +1 -1
  25. package/dist/commands/add/entity/templates/entity-translation.template.ts +29 -0
  26. package/dist/commands/add/entity/templates/entity.template.ts +18 -4
  27. package/dist/commands/add/job-queue/add-job-queue.d.ts +9 -0
  28. package/dist/commands/add/job-queue/add-job-queue.js +130 -0
  29. package/dist/commands/add/job-queue/add-job-queue.js.map +1 -0
  30. package/dist/commands/add/plugin/create-new-plugin.d.ts +8 -0
  31. package/dist/commands/add/plugin/create-new-plugin.js +209 -0
  32. package/dist/commands/add/plugin/create-new-plugin.js.map +1 -0
  33. package/dist/commands/add/plugin/templates/constants.template.ts +2 -0
  34. package/dist/commands/add/plugin/templates/plugin.template.ts +25 -0
  35. package/dist/commands/add/plugin/templates/types.template.ts +7 -0
  36. package/dist/commands/add/plugin/types.d.ts +8 -0
  37. package/dist/commands/add/plugin/types.js.map +1 -0
  38. package/dist/commands/add/service/add-service.d.ts +5 -0
  39. package/dist/commands/add/service/add-service.js +278 -0
  40. package/dist/commands/add/service/add-service.js.map +1 -0
  41. package/dist/commands/add/service/templates/basic-service.template.ts +13 -0
  42. package/dist/commands/add/service/templates/entity-service.template.ts +146 -0
  43. package/dist/commands/add/ui-extensions/add-ui-extensions.d.ts +6 -1
  44. package/dist/commands/add/ui-extensions/add-ui-extensions.js +32 -42
  45. package/dist/commands/add/ui-extensions/add-ui-extensions.js.map +1 -1
  46. package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.d.ts +2 -2
  47. package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.js +6 -3
  48. package/dist/commands/add/ui-extensions/codemods/add-ui-extension-static-prop/add-ui-extension-static-prop.js.map +1 -1
  49. package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.d.ts +2 -2
  50. package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.js +10 -10
  51. package/dist/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.js.map +1 -1
  52. package/dist/commands/add/ui-extensions/templates/providers.template.ts +3 -0
  53. package/dist/commands/add/ui-extensions/templates/routes.template.ts +3 -0
  54. package/dist/commands/migrate/generate-migration/generate-migration.d.ts +2 -0
  55. package/dist/commands/migrate/generate-migration/generate-migration.js +48 -0
  56. package/dist/commands/migrate/generate-migration/generate-migration.js.map +1 -0
  57. package/dist/commands/migrate/load-vendure-config-file.d.ts +2 -0
  58. package/dist/commands/migrate/load-vendure-config-file.js +24 -0
  59. package/dist/commands/migrate/load-vendure-config-file.js.map +1 -0
  60. package/dist/commands/migrate/migrate.d.ts +1 -0
  61. package/dist/commands/migrate/migrate.js +50 -0
  62. package/dist/commands/migrate/migrate.js.map +1 -0
  63. package/dist/commands/migrate/revert-migration/revert-migration.d.ts +2 -0
  64. package/dist/commands/migrate/revert-migration/revert-migration.js +31 -0
  65. package/dist/commands/migrate/revert-migration/revert-migration.js.map +1 -0
  66. package/dist/commands/migrate/run-migration/run-migration.d.ts +2 -0
  67. package/dist/commands/migrate/run-migration/run-migration.js +34 -0
  68. package/dist/commands/migrate/run-migration/run-migration.js.map +1 -0
  69. package/dist/constants.d.ts +8 -0
  70. package/dist/constants.js +9 -1
  71. package/dist/constants.js.map +1 -1
  72. package/dist/shared/cli-command.d.ts +24 -0
  73. package/dist/shared/cli-command.js +22 -0
  74. package/dist/shared/cli-command.js.map +1 -0
  75. package/dist/shared/entity-ref.d.ts +16 -0
  76. package/dist/shared/entity-ref.js +48 -0
  77. package/dist/shared/entity-ref.js.map +1 -0
  78. package/dist/shared/package-json-ref.d.ts +17 -0
  79. package/dist/shared/package-json-ref.js +115 -0
  80. package/dist/shared/package-json-ref.js.map +1 -0
  81. package/dist/shared/service-ref.d.ts +25 -0
  82. package/dist/shared/service-ref.js +82 -0
  83. package/dist/shared/service-ref.js.map +1 -0
  84. package/dist/shared/shared-prompts.d.ts +13 -3
  85. package/dist/shared/shared-prompts.js +143 -24
  86. package/dist/shared/shared-prompts.js.map +1 -1
  87. package/dist/shared/vendure-config-ref.d.ts +14 -0
  88. package/dist/shared/vendure-config-ref.js +65 -0
  89. package/dist/shared/vendure-config-ref.js.map +1 -0
  90. package/dist/shared/vendure-plugin-ref.d.ts +18 -0
  91. package/dist/shared/vendure-plugin-ref.js +145 -0
  92. package/dist/shared/vendure-plugin-ref.js.map +1 -0
  93. package/dist/utilities/ast-utils.d.ts +7 -9
  94. package/dist/utilities/ast-utils.js +65 -39
  95. package/dist/utilities/ast-utils.js.map +1 -1
  96. package/dist/utilities/utils.d.ts +2 -0
  97. package/dist/utilities/utils.js +12 -0
  98. package/dist/utilities/utils.js.map +1 -0
  99. package/package.json +6 -4
  100. package/dist/commands/add/ui-extensions/scaffold/providers.d.ts +0 -1
  101. package/dist/commands/add/ui-extensions/scaffold/providers.js +0 -13
  102. package/dist/commands/add/ui-extensions/scaffold/providers.js.map +0 -1
  103. package/dist/commands/add/ui-extensions/scaffold/routes.d.ts +0 -1
  104. package/dist/commands/add/ui-extensions/scaffold/routes.js +0 -13
  105. package/dist/commands/add/ui-extensions/scaffold/routes.js.map +0 -1
  106. package/dist/commands/new/new.d.ts +0 -2
  107. package/dist/commands/new/new.js +0 -18
  108. package/dist/commands/new/new.js.map +0 -1
  109. package/dist/commands/new/plugin/new-plugin.d.ts +0 -3
  110. package/dist/commands/new/plugin/new-plugin.js +0 -158
  111. package/dist/commands/new/plugin/new-plugin.js.map +0 -1
  112. package/dist/commands/new/plugin/scaffold/api/admin.resolver.d.ts +0 -3
  113. package/dist/commands/new/plugin/scaffold/api/admin.resolver.js +0 -66
  114. package/dist/commands/new/plugin/scaffold/api/admin.resolver.js.map +0 -1
  115. package/dist/commands/new/plugin/scaffold/api/api-extensions.d.ts +0 -2
  116. package/dist/commands/new/plugin/scaffold/api/api-extensions.js +0 -82
  117. package/dist/commands/new/plugin/scaffold/api/api-extensions.js.map +0 -1
  118. package/dist/commands/new/plugin/scaffold/api/shop.resolver.d.ts +0 -3
  119. package/dist/commands/new/plugin/scaffold/api/shop.resolver.js +0 -57
  120. package/dist/commands/new/plugin/scaffold/api/shop.resolver.js.map +0 -1
  121. package/dist/commands/new/plugin/scaffold/constants.d.ts +0 -2
  122. package/dist/commands/new/plugin/scaffold/constants.js +0 -21
  123. package/dist/commands/new/plugin/scaffold/constants.js.map +0 -1
  124. package/dist/commands/new/plugin/scaffold/plugin.d.ts +0 -2
  125. package/dist/commands/new/plugin/scaffold/plugin.js +0 -51
  126. package/dist/commands/new/plugin/scaffold/plugin.js.map +0 -1
  127. package/dist/commands/new/plugin/scaffold/services/service.d.ts +0 -3
  128. package/dist/commands/new/plugin/scaffold/services/service.js +0 -80
  129. package/dist/commands/new/plugin/scaffold/services/service.js.map +0 -1
  130. package/dist/commands/new/plugin/scaffold/types.d.ts +0 -2
  131. package/dist/commands/new/plugin/scaffold/types.js +0 -15
  132. package/dist/commands/new/plugin/scaffold/types.js.map +0 -1
  133. package/dist/commands/new/plugin/types.d.ts +0 -22
  134. package/dist/commands/new/plugin/types.js.map +0 -1
  135. package/dist/shared/shared-scaffold/entity.d.ts +0 -5
  136. package/dist/shared/shared-scaffold/entity.js +0 -26
  137. package/dist/shared/shared-scaffold/entity.js.map +0 -1
  138. package/dist/utilities/package-utils.d.ts +0 -8
  139. package/dist/utilities/package-utils.js +0 -96
  140. package/dist/utilities/package-utils.js.map +0 -1
  141. package/dist/utilities/scaffolder.d.ts +0 -8
  142. package/dist/utilities/scaffolder.js +0 -50
  143. package/dist/utilities/scaffolder.js.map +0 -1
  144. /package/dist/commands/{new → add}/plugin/types.js +0 -0
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateAdminUiPluginInit = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
+ const constants_1 = require("../../../../../constants");
5
6
  const ast_utils_1 = require("../../../../../utilities/ast-utils");
6
7
  function updateAdminUiPluginInit(vendureConfig, options) {
7
- var _a, _b, _c;
8
- const plugins = (_b = (_a = vendureConfig
9
- .getProperty('plugins')) === null || _a === void 0 ? void 0 : _a.getFirstChildByKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression)) === null || _b === void 0 ? void 0 : _b.getFirstChildByKind(ts_morph_1.SyntaxKind.SyntaxList);
10
- const adminUiPlugin = plugins === null || plugins === void 0 ? void 0 : plugins.getChildrenOfKind(ts_morph_1.SyntaxKind.CallExpression).find(c => {
8
+ var _a, _b;
9
+ const adminUiPlugin = (_a = vendureConfig
10
+ .getPluginsArray()) === null || _a === void 0 ? void 0 : _a.getChildrenOfKind(ts_morph_1.SyntaxKind.CallExpression).find(c => {
11
11
  return c.getExpression().getText() === 'AdminUiPlugin.init';
12
12
  });
13
13
  if (adminUiPlugin) {
@@ -30,28 +30,28 @@ function updateAdminUiPluginInit(vendureConfig, options) {
30
30
  }
31
31
  else {
32
32
  const computeFnCall = appProperty.getFirstChildByKind(ts_morph_1.SyntaxKind.CallExpression);
33
- if (computeFnCall === null || computeFnCall === void 0 ? void 0 : computeFnCall.getType().getText().includes('AdminUiAppConfig')) {
33
+ if (computeFnCall === null || computeFnCall === void 0 ? void 0 : computeFnCall.getType().getText().includes(constants_1.AdminUiAppConfigName)) {
34
34
  const arg = computeFnCall.getArguments()[0];
35
35
  if (arg && ts_morph_1.Node.isObjectLiteralExpression(arg)) {
36
36
  const extensionsProp = arg.getProperty('extensions');
37
37
  if (extensionsProp) {
38
- (_c = extensionsProp
39
- .getFirstChildByKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression)) === null || _c === void 0 ? void 0 : _c.addElement(`${options.pluginClassName}.ui`).formatText();
38
+ (_b = extensionsProp
39
+ .getFirstChildByKind(ts_morph_1.SyntaxKind.ArrayLiteralExpression)) === null || _b === void 0 ? void 0 : _b.addElement(`${options.pluginClassName}.ui`).formatText();
40
40
  }
41
41
  }
42
42
  }
43
43
  }
44
- (0, ast_utils_1.addImportsToFile)(vendureConfig.getSourceFile(), {
44
+ (0, ast_utils_1.addImportsToFile)(vendureConfig.sourceFile, {
45
45
  moduleSpecifier: '@vendure/ui-devkit/compiler',
46
46
  namedImports: ['compileUiExtensions'],
47
47
  order: 0,
48
48
  });
49
- (0, ast_utils_1.addImportsToFile)(vendureConfig.getSourceFile(), {
49
+ (0, ast_utils_1.addImportsToFile)(vendureConfig.sourceFile, {
50
50
  moduleSpecifier: 'path',
51
51
  namespaceImport: 'path',
52
52
  order: 0,
53
53
  });
54
- (0, ast_utils_1.addImportsToFile)(vendureConfig.getSourceFile(), {
54
+ (0, ast_utils_1.addImportsToFile)(vendureConfig.sourceFile, {
55
55
  moduleSpecifier: options.pluginPath,
56
56
  namedImports: [options.pluginClassName],
57
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"update-admin-ui-plugin-init.js","sourceRoot":"","sources":["../../../../../../src/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.ts"],"names":[],"mappings":";;;AAAA,uCAAoF;AAEpF,kEAAsE;AAEtE,SAAgB,uBAAuB,CACnC,aAAsC,EACtC,OAAwD;;IAExD,MAAM,OAAO,GAAG,MAAA,MAAA,aAAa;SACxB,WAAW,CAAC,SAAS,CAAC,0CACrB,mBAAmB,CAAC,qBAAU,CAAC,sBAAsB,CAAC,0CACtD,mBAAmB,CAAC,qBAAU,CAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,CAAC,qBAAU,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;QACjF,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,oBAAoB,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,aAAa;aAC3B,YAAY,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,UAAU,aAAV,UAAU,uBAAV,UAAU,CACJ,WAAW,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,wBAAa,CAAC,kBAAkB;gBACtC,WAAW,EAAE;;;8BAGH,OAAO,CAAC,eAAe;;;wBAG7B;aACP,EACA,UAAU,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,CAAC,qBAAU,CAAC,cAAc,CAAC,CAAC;YACjF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAClE,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,eAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;oBACrD,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAA,cAAc;6BACT,mBAAmB,CAAC,qBAAU,CAAC,sBAAsB,CAAC,0CACrD,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,KAAK,EAC3C,UAAU,EAAE,CAAC;oBACtB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAA,4BAAgB,EAAC,aAAa,CAAC,aAAa,EAAE,EAAE;YAC5C,eAAe,EAAE,6BAA6B;YAC9C,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,aAAa,EAAE,EAAE;YAC5C,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,aAAa,EAAE,EAAE;YAC5C,eAAe,EAAE,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAlED,0DAkEC"}
1
+ {"version":3,"file":"update-admin-ui-plugin-init.js","sourceRoot":"","sources":["../../../../../../src/commands/add/ui-extensions/codemods/update-admin-ui-plugin-init/update-admin-ui-plugin-init.ts"],"names":[],"mappings":";;;AAAA,uCAAoF;AAEpF,wDAAgE;AAEhE,kEAAsE;AAEtE,SAAgB,uBAAuB,CACnC,aAA+B,EAC/B,OAAwD;;IAExD,MAAM,aAAa,GAAG,MAAA,aAAa;SAC9B,eAAe,EAAE,0CAChB,iBAAiB,CAAC,qBAAU,CAAC,cAAc,EAC5C,IAAI,CAAC,CAAC,CAAC,EAAE;QACN,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,KAAK,oBAAoB,CAAC;IAChE,CAAC,CAAC,CAAC;IACP,IAAI,aAAa,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,aAAa;aAC3B,YAAY,EAAE;aACd,IAAI,CAAC,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,UAAU,aAAV,UAAU,uBAAV,UAAU,CACJ,WAAW,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,wBAAa,CAAC,kBAAkB;gBACtC,WAAW,EAAE;;;8BAGH,OAAO,CAAC,eAAe;;;wBAG7B;aACP,EACA,UAAU,EAAE,CAAC;QACtB,CAAC;aAAM,CAAC;YACJ,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,CAAC,qBAAU,CAAC,cAAc,CAAC,CAAC;YACjF,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,gCAAoB,CAAC,EAAE,CAAC;gBACpE,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,IAAI,GAAG,IAAI,eAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;oBACrD,IAAI,cAAc,EAAE,CAAC;wBACjB,MAAA,cAAc;6BACT,mBAAmB,CAAC,qBAAU,CAAC,sBAAsB,CAAC,0CACrD,UAAU,CAAC,GAAG,OAAO,CAAC,eAAe,KAAK,EAC3C,UAAU,EAAE,CAAC;oBACtB,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACvC,eAAe,EAAE,6BAA6B;YAC9C,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACvC,eAAe,EAAE,MAAM;YACvB,eAAe,EAAE,MAAM;YACvB,KAAK,EAAE,CAAC;SACX,CAAC,CAAC;QAEH,IAAA,4BAAgB,EAAC,aAAa,CAAC,UAAU,EAAE;YACvC,eAAe,EAAE,OAAO,CAAC,UAAU;YACnC,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SAC1C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAhED,0DAgEC"}
@@ -0,0 +1,3 @@
1
+ export default [
2
+ // Add your providers here
3
+ ];
@@ -0,0 +1,3 @@
1
+ export default [
2
+ // Add your custom routes here
3
+ ];
@@ -0,0 +1,2 @@
1
+ import { CliCommand, CliCommandReturnVal } from '../../../shared/cli-command';
2
+ export declare const generateMigrationCommand: CliCommand<Record<string, any>, CliCommandReturnVal>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateMigrationCommand = void 0;
4
+ const prompts_1 = require("@clack/prompts");
5
+ const core_1 = require("@vendure/core");
6
+ const cli_command_1 = require("../../../shared/cli-command");
7
+ const shared_prompts_1 = require("../../../shared/shared-prompts");
8
+ const vendure_config_ref_1 = require("../../../shared/vendure-config-ref");
9
+ const load_vendure_config_file_1 = require("../load-vendure-config-file");
10
+ const cancelledMessage = 'Generate migration cancelled';
11
+ exports.generateMigrationCommand = new cli_command_1.CliCommand({
12
+ id: 'generate-migration',
13
+ category: 'Other',
14
+ description: 'Generate a new database migration',
15
+ run: () => runGenerateMigration(),
16
+ });
17
+ async function runGenerateMigration() {
18
+ const project = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
19
+ const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
20
+ prompts_1.log.info('Using VendureConfig from ' + vendureConfig.getPathRelativeToProjectRoot());
21
+ const name = await (0, prompts_1.text)({
22
+ message: 'Enter a meaningful name for the migration',
23
+ initialValue: '',
24
+ placeholder: 'add-custom-fields',
25
+ validate: input => {
26
+ if (!/^[a-zA-Z][a-zA-Z-_0-9]+$/.test(input)) {
27
+ return 'The plugin name must contain only letters, numbers, underscores and dashes';
28
+ }
29
+ },
30
+ });
31
+ if ((0, prompts_1.isCancel)(name)) {
32
+ (0, prompts_1.cancel)(cancelledMessage);
33
+ process.exit(0);
34
+ }
35
+ const config = (0, load_vendure_config_file_1.loadVendureConfigFile)(vendureConfig);
36
+ const migrationSpinner = (0, prompts_1.spinner)();
37
+ migrationSpinner.start('Generating migration...');
38
+ const migrationName = await (0, core_1.generateMigration)(config, { name, outputDir: './src/migrations' });
39
+ const report = typeof migrationName === 'string'
40
+ ? `New migration generated: ${migrationName}`
41
+ : 'No changes in database schema were found, so no migration was generated';
42
+ migrationSpinner.stop(report);
43
+ return {
44
+ project,
45
+ modifiedSourceFiles: [],
46
+ };
47
+ }
48
+ //# sourceMappingURL=generate-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/generate-migration/generate-migration.ts"],"names":[],"mappings":";;;AAAA,4CAAsE;AACtE,wCAAkD;AAElD,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;AAE3C,QAAA,wBAAwB,GAAG,IAAI,wBAAU,CAAC;IACnD,EAAE,EAAE,oBAAoB;IACxB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,mCAAmC;IAChD,GAAG,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE;CACpC,CAAC,CAAC;AAEH,KAAK,UAAU,oBAAoB;IAC/B,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC;IAErF,MAAM,IAAI,GAAG,MAAM,IAAA,cAAI,EAAC;QACpB,OAAO,EAAE,2CAA2C;QACpD,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,mBAAmB;QAChC,QAAQ,EAAE,KAAK,CAAC,EAAE;YACd,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,OAAO,4EAA4E,CAAC;YACxF,CAAC;QACL,CAAC;KACJ,CAAC,CAAC;IACH,IAAI,IAAA,kBAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACjB,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,gDAAqB,EAAC,aAAa,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAA,iBAAO,GAAE,CAAC;IACnC,gBAAgB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAiB,EAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC/F,MAAM,MAAM,GACR,OAAO,aAAa,KAAK,QAAQ;QAC7B,CAAC,CAAC,4BAA4B,aAAa,EAAE;QAC7C,CAAC,CAAC,yEAAyE,CAAC;IACpF,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO;QACH,OAAO;QACP,mBAAmB,EAAE,EAAE;KAC1B,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { VendureConfigRef } from '../../shared/vendure-config-ref';
2
+ export declare function loadVendureConfigFile(vendureConfig: VendureConfigRef): any;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadVendureConfigFile = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const ts_node_1 = require("ts-node");
9
+ const utils_1 = require("../../utilities/utils");
10
+ function loadVendureConfigFile(vendureConfig) {
11
+ if (!(0, utils_1.isRunningInTsNode)()) {
12
+ const tsConfigPath = node_path_1.default.join(process.cwd(), 'tsconfig.json');
13
+ const compilerOptions = require(tsConfigPath).compilerOptions;
14
+ (0, ts_node_1.register)({ compilerOptions, transpileOnly: true });
15
+ }
16
+ const exportedVarName = vendureConfig.getConfigObjectVariableName();
17
+ if (!exportedVarName) {
18
+ throw new Error('Could not find the exported variable name in the VendureConfig file');
19
+ }
20
+ const config = require(vendureConfig.sourceFile.getFilePath())[exportedVarName];
21
+ return config;
22
+ }
23
+ exports.loadVendureConfigFile = loadVendureConfigFile;
24
+ //# sourceMappingURL=load-vendure-config-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-vendure-config-file.js","sourceRoot":"","sources":["../../../src/commands/migrate/load-vendure-config-file.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAC7B,qCAAmC;AAGnC,iDAA0D;AAE1D,SAAgB,qBAAqB,CAAC,aAA+B;IACjE,IAAI,CAAC,IAAA,yBAAiB,GAAE,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,mBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QAE/D,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC;QAC9D,IAAA,kBAAQ,EAAC,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,eAAe,GAAG,aAAa,CAAC,2BAA2B,EAAE,CAAC;IACpE,IAAI,CAAC,eAAe,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC;AAClB,CAAC;AAdD,sDAcC"}
@@ -0,0 +1 @@
1
+ export declare function migrateCommand(): Promise<void>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.migrateCommand = void 0;
7
+ const prompts_1 = require("@clack/prompts");
8
+ const picocolors_1 = __importDefault(require("picocolors"));
9
+ const generate_migration_1 = require("./generate-migration/generate-migration");
10
+ const revert_migration_1 = require("./revert-migration/revert-migration");
11
+ const run_migration_1 = require("./run-migration/run-migration");
12
+ const cancelledMessage = 'Migrate cancelled.';
13
+ async function migrateCommand() {
14
+ console.log(`\n`);
15
+ (0, prompts_1.intro)(picocolors_1.default.blue('🛠️️ Vendure migrations'));
16
+ const action = await (0, prompts_1.select)({
17
+ message: 'What would you like to do?',
18
+ options: [
19
+ { value: 'generate', label: 'Generate a new migration' },
20
+ { value: 'run', label: 'Run pending migrations' },
21
+ { value: 'revert', label: 'Revert the last migration' },
22
+ ],
23
+ });
24
+ if ((0, prompts_1.isCancel)(action)) {
25
+ (0, prompts_1.cancel)(cancelledMessage);
26
+ process.exit(0);
27
+ }
28
+ try {
29
+ process.env.VENDURE_RUNNING_IN_CLI = 'true';
30
+ if (action === 'generate') {
31
+ await generate_migration_1.generateMigrationCommand.run();
32
+ }
33
+ if (action === 'run') {
34
+ await run_migration_1.runMigrationCommand.run();
35
+ }
36
+ if (action === 'revert') {
37
+ await revert_migration_1.revertMigrationCommand.run();
38
+ }
39
+ (0, prompts_1.outro)('✅ Done!');
40
+ process.env.VENDURE_RUNNING_IN_CLI = undefined;
41
+ }
42
+ catch (e) {
43
+ prompts_1.log.error(e.message);
44
+ if (e.stack) {
45
+ prompts_1.log.error(e.stack);
46
+ }
47
+ }
48
+ }
49
+ exports.migrateCommand = migrateCommand;
50
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/commands/migrate/migrate.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA6E;AAC7E,4DAA4B;AAE5B,gFAAmF;AACnF,0EAA6E;AAC7E,iEAAoE;AAEpE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAOvC,KAAK,UAAU,cAAc;IAEhC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,eAAK,EAAC,oBAAE,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;QACxB,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE;YACL,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAE;YACxD,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE;YACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE;SAC1D;KACJ,CAAC,CAAC;IACH,IAAI,IAAA,kBAAQ,EAAC,MAAM,CAAC,EAAE,CAAC;QACnB,IAAA,gBAAM,EAAC,gBAAgB,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,MAAM,CAAC;QAC5C,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,6CAAwB,CAAC,GAAG,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnB,MAAM,mCAAmB,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,yCAAsB,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;QACD,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,SAAS,CAAC;IACnD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACd,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACV,aAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;AACL,CAAC;AAnCD,wCAmCC"}
@@ -0,0 +1,2 @@
1
+ import { CliCommand, CliCommandReturnVal } from '../../../shared/cli-command';
2
+ export declare const revertMigrationCommand: CliCommand<Record<string, any>, CliCommandReturnVal>;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.revertMigrationCommand = void 0;
4
+ const prompts_1 = require("@clack/prompts");
5
+ const core_1 = require("@vendure/core");
6
+ const cli_command_1 = require("../../../shared/cli-command");
7
+ const shared_prompts_1 = require("../../../shared/shared-prompts");
8
+ const vendure_config_ref_1 = require("../../../shared/vendure-config-ref");
9
+ const load_vendure_config_file_1 = require("../load-vendure-config-file");
10
+ const cancelledMessage = 'Revert migrations cancelled';
11
+ exports.revertMigrationCommand = new cli_command_1.CliCommand({
12
+ id: 'run-migration',
13
+ category: 'Other',
14
+ description: 'Run any pending database migrations',
15
+ run: () => runRevertMigration(),
16
+ });
17
+ async function runRevertMigration() {
18
+ const project = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
19
+ const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
20
+ prompts_1.log.info('Using VendureConfig from ' + vendureConfig.getPathRelativeToProjectRoot());
21
+ const config = (0, load_vendure_config_file_1.loadVendureConfigFile)(vendureConfig);
22
+ const runSpinner = (0, prompts_1.spinner)();
23
+ runSpinner.start('Reverting last migration...');
24
+ await (0, core_1.revertLastMigration)(config);
25
+ runSpinner.stop(`Successfully reverted last migration`);
26
+ return {
27
+ project,
28
+ modifiedSourceFiles: [],
29
+ };
30
+ }
31
+ //# sourceMappingURL=revert-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revert-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/revert-migration/revert-migration.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,wCAAoD;AAEpD,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAE1C,QAAA,sBAAsB,GAAG,IAAI,wBAAU,CAAC;IACjD,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE;CAClC,CAAC,CAAC;AAEH,KAAK,UAAU,kBAAkB;IAC7B,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAA,gDAAqB,EAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,MAAM,IAAA,0BAAmB,EAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxD,OAAO;QACH,OAAO;QACP,mBAAmB,EAAE,EAAE;KAC1B,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CliCommand, CliCommandReturnVal } from '../../../shared/cli-command';
2
+ export declare const runMigrationCommand: CliCommand<Record<string, any>, CliCommandReturnVal>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runMigrationCommand = void 0;
4
+ const prompts_1 = require("@clack/prompts");
5
+ const core_1 = require("@vendure/core");
6
+ const cli_command_1 = require("../../../shared/cli-command");
7
+ const shared_prompts_1 = require("../../../shared/shared-prompts");
8
+ const vendure_config_ref_1 = require("../../../shared/vendure-config-ref");
9
+ const load_vendure_config_file_1 = require("../load-vendure-config-file");
10
+ const cancelledMessage = 'Run migrations cancelled';
11
+ exports.runMigrationCommand = new cli_command_1.CliCommand({
12
+ id: 'run-migration',
13
+ category: 'Other',
14
+ description: 'Run any pending database migrations',
15
+ run: () => runRunMigration(),
16
+ });
17
+ async function runRunMigration() {
18
+ const project = await (0, shared_prompts_1.analyzeProject)({ cancelledMessage });
19
+ const vendureConfig = new vendure_config_ref_1.VendureConfigRef(project);
20
+ prompts_1.log.info('Using VendureConfig from ' + vendureConfig.getPathRelativeToProjectRoot());
21
+ const config = (0, load_vendure_config_file_1.loadVendureConfigFile)(vendureConfig);
22
+ const runSpinner = (0, prompts_1.spinner)();
23
+ runSpinner.start('Running migrations...');
24
+ const migrationsRan = await (0, core_1.runMigrations)(config);
25
+ const report = migrationsRan.length
26
+ ? `Successfully ran ${migrationsRan.length} migrations`
27
+ : 'No pending migrations found';
28
+ runSpinner.stop(report);
29
+ return {
30
+ project,
31
+ modifiedSourceFiles: [],
32
+ };
33
+ }
34
+ //# sourceMappingURL=run-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-migration.js","sourceRoot":"","sources":["../../../../src/commands/migrate/run-migration/run-migration.ts"],"names":[],"mappings":";;;AAAA,4CAA8C;AAC9C,wCAA8C;AAE9C,6DAA8E;AAC9E,mEAAgE;AAChE,2EAAsE;AACtE,0EAAoE;AAEpE,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAEvC,QAAA,mBAAmB,GAAG,IAAI,wBAAU,CAAC;IAC9C,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,qCAAqC;IAClD,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;CAC/B,CAAC,CAAC;AAEH,KAAK,UAAU,eAAe;IAC1B,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,qCAAgB,CAAC,OAAO,CAAC,CAAC;IACpD,aAAG,CAAC,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,IAAA,gDAAqB,EAAC,aAAa,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAa,EAAC,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM;QAC/B,CAAC,CAAC,oBAAoB,aAAa,CAAC,MAAM,aAAa;QACvD,CAAC,CAAC,6BAA6B,CAAC;IACpC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO;QACH,OAAO;QACP,mBAAmB,EAAE,EAAE;KAC1B,CAAC;AACN,CAAC"}
@@ -1,2 +1,10 @@
1
1
  import { ManipulationSettings } from 'ts-morph';
2
2
  export declare const defaultManipulationSettings: Partial<ManipulationSettings>;
3
+ export declare const pascalCaseRegex: RegExp;
4
+ export declare const AdminUiExtensionTypeName = "AdminUiExtension";
5
+ export declare const AdminUiAppConfigName = "AdminUiAppConfig";
6
+ export declare const Messages: {
7
+ NoPluginsFound: string;
8
+ NoEntitiesFound: string;
9
+ NoServicesFound: string;
10
+ };
package/dist/constants.js CHANGED
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultManipulationSettings = void 0;
3
+ exports.Messages = exports.AdminUiAppConfigName = exports.AdminUiExtensionTypeName = exports.pascalCaseRegex = exports.defaultManipulationSettings = void 0;
4
4
  const ts_morph_1 = require("ts-morph");
5
5
  exports.defaultManipulationSettings = {
6
6
  quoteKind: ts_morph_1.QuoteKind.Single,
7
7
  useTrailingCommas: true,
8
8
  };
9
+ exports.pascalCaseRegex = /^[A-Z][a-zA-Z0-9]*$/;
10
+ exports.AdminUiExtensionTypeName = 'AdminUiExtension';
11
+ exports.AdminUiAppConfigName = 'AdminUiAppConfig';
12
+ exports.Messages = {
13
+ NoPluginsFound: `No plugins were found in this project. Create a plugin first by selecting "[Plugin] Create a new Vendure plugin"`,
14
+ NoEntitiesFound: `No entities were found in this plugin.`,
15
+ NoServicesFound: `No services were found in this plugin. Create a service first by selecting "[Plugin: Service] Add a new service to a plugin"`,
16
+ };
9
17
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAE9C,QAAA,2BAA2B,GAAkC;IACtE,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,iBAAiB,EAAE,IAAI;CAC1B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAE9C,QAAA,2BAA2B,GAAkC;IACtE,SAAS,EAAE,oBAAS,CAAC,MAAM;IAC3B,iBAAiB,EAAE,IAAI;CAC1B,CAAC;AACW,QAAA,eAAe,GAAG,qBAAqB,CAAC;AACxC,QAAA,wBAAwB,GAAG,kBAAkB,CAAC;AAC9C,QAAA,oBAAoB,GAAG,kBAAkB,CAAC;AAC1C,QAAA,QAAQ,GAAG;IACpB,cAAc,EAAE,kHAAkH;IAClI,eAAe,EAAE,wCAAwC;IACzD,eAAe,EAAE,8HAA8H;CAClJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Project, SourceFile } from 'ts-morph';
2
+ import { VendurePluginRef } from './vendure-plugin-ref';
3
+ export type CommandCategory = `Plugin` | `Plugin: UI` | `Plugin: Entity` | `Plugin: Service` | `Plugin: API` | `Plugin: Job Queue` | `Project: Codegen` | `Other`;
4
+ export interface BaseCliCommandOptions {
5
+ plugin?: VendurePluginRef;
6
+ }
7
+ export type CliCommandReturnVal<T extends Record<string, any> = Record<string, any>> = {
8
+ project: Project;
9
+ modifiedSourceFiles: SourceFile[];
10
+ } & T;
11
+ export interface CliCommandOptions<T extends BaseCliCommandOptions, R extends CliCommandReturnVal> {
12
+ id: string;
13
+ category: CommandCategory;
14
+ description: string;
15
+ run: (options?: Partial<T>) => Promise<R>;
16
+ }
17
+ export declare class CliCommand<T extends Record<string, any>, R extends CliCommandReturnVal = CliCommandReturnVal> {
18
+ private options;
19
+ constructor(options: CliCommandOptions<T, R>);
20
+ get id(): string;
21
+ get category(): CommandCategory;
22
+ get description(): string;
23
+ run(options?: Partial<T>): Promise<R>;
24
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CliCommand = void 0;
4
+ class CliCommand {
5
+ constructor(options) {
6
+ this.options = options;
7
+ }
8
+ get id() {
9
+ return this.options.id;
10
+ }
11
+ get category() {
12
+ return this.options.category;
13
+ }
14
+ get description() {
15
+ return this.options.description;
16
+ }
17
+ run(options) {
18
+ return this.options.run(options);
19
+ }
20
+ }
21
+ exports.CliCommand = CliCommand;
22
+ //# sourceMappingURL=cli-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-command.js","sourceRoot":"","sources":["../../src/shared/cli-command.ts"],"names":[],"mappings":";;;AA8BA,MAAa,UAAU;IACnB,YAAoB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAAG,CAAC;IAExD,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACpC,CAAC;IAED,GAAG,CAAC,OAAoB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;CACJ;AAlBD,gCAkBC"}
@@ -0,0 +1,16 @@
1
+ import { ClassDeclaration, Type } from 'ts-morph';
2
+ export declare class EntityRef {
3
+ classDeclaration: ClassDeclaration;
4
+ constructor(classDeclaration: ClassDeclaration);
5
+ get name(): string;
6
+ get nameCamelCase(): string;
7
+ isTranslatable(): boolean;
8
+ isTranslation(): boolean;
9
+ hasCustomFields(): boolean;
10
+ getProps(): Array<{
11
+ name: string;
12
+ type: Type;
13
+ nullable: boolean;
14
+ }>;
15
+ getTranslationClass(): ClassDeclaration | undefined;
16
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityRef = void 0;
4
+ const ts_morph_1 = require("ts-morph");
5
+ class EntityRef {
6
+ constructor(classDeclaration) {
7
+ this.classDeclaration = classDeclaration;
8
+ }
9
+ get name() {
10
+ return this.classDeclaration.getName();
11
+ }
12
+ get nameCamelCase() {
13
+ return this.name.charAt(0).toLowerCase() + this.name.slice(1);
14
+ }
15
+ isTranslatable() {
16
+ return this.classDeclaration.getImplements().some(i => i.getText() === 'Translatable');
17
+ }
18
+ isTranslation() {
19
+ return this.classDeclaration.getImplements().some(i => i.getText().includes('Translation<'));
20
+ }
21
+ hasCustomFields() {
22
+ return this.classDeclaration.getImplements().some(i => i.getText() === 'HasCustomFields');
23
+ }
24
+ getProps() {
25
+ return this.classDeclaration.getProperties().map(prop => {
26
+ const propType = prop.getType();
27
+ const name = prop.getName();
28
+ return { name, type: propType.getNonNullableType(), nullable: propType.isNullable() };
29
+ });
30
+ }
31
+ getTranslationClass() {
32
+ var _a, _b;
33
+ if (!this.isTranslatable()) {
34
+ return;
35
+ }
36
+ const translationsDecoratorArgs = (_b = (_a = this.classDeclaration
37
+ .getProperty('translations')) === null || _a === void 0 ? void 0 : _a.getDecorator('OneToMany')) === null || _b === void 0 ? void 0 : _b.getArguments();
38
+ if (translationsDecoratorArgs) {
39
+ const typeFn = translationsDecoratorArgs[0];
40
+ if (ts_morph_1.Node.isArrowFunction(typeFn)) {
41
+ const translationClass = typeFn.getReturnType().getSymbolOrThrow().getDeclarations()[0];
42
+ return translationClass;
43
+ }
44
+ }
45
+ }
46
+ }
47
+ exports.EntityRef = EntityRef;
48
+ //# sourceMappingURL=entity-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-ref.js","sourceRoot":"","sources":["../../src/shared/entity-ref.ts"],"names":[],"mappings":";;;AAAA,uCAAoE;AAEpE,MAAa,SAAS;IAClB,YAAmB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;IAAG,CAAC;IAEzD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAY,CAAC;IACrD,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,CAAC;IAC3F,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,iBAAiB,CAAC,CAAC;IAC9F,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;QAC1F,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;;QACf,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QACD,MAAM,yBAAyB,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB;aAClD,WAAW,CAAC,cAAc,CAAC,0CAC1B,YAAY,CAAC,WAAW,CAAC,0CACzB,YAAY,EAAE,CAAC;QAErB,IAAI,yBAAyB,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,eAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxF,OAAO,gBAAoC,CAAC;YAChD,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AAhDD,8BAgDC"}
@@ -0,0 +1,17 @@
1
+ import { Project } from 'ts-morph';
2
+ export interface PackageToInstall {
3
+ pkg: string;
4
+ version?: string;
5
+ isDevDependency?: boolean;
6
+ }
7
+ export declare class PackageJson {
8
+ private readonly project;
9
+ constructor(project: Project);
10
+ determineVendureVersion(): string | undefined;
11
+ installPackages(requiredPackages: PackageToInstall[]): Promise<void>;
12
+ getPackageJsonContent(): any;
13
+ determinePackageManager(): 'yarn' | 'npm' | 'pnpm';
14
+ addScript(scriptName: string, script: string): void;
15
+ getPackageRootDir(): import("ts-morph").Directory;
16
+ private runPackageManagerInstall;
17
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PackageJson = void 0;
7
+ const prompts_1 = require("@clack/prompts");
8
+ const cross_spawn_1 = __importDefault(require("cross-spawn"));
9
+ const fs_extra_1 = __importDefault(require("fs-extra"));
10
+ const path_1 = __importDefault(require("path"));
11
+ class PackageJson {
12
+ constructor(project) {
13
+ this.project = project;
14
+ }
15
+ determineVendureVersion() {
16
+ const packageJson = this.getPackageJsonContent();
17
+ return packageJson.dependencies['@vendure/core'];
18
+ }
19
+ async installPackages(requiredPackages) {
20
+ const packageJson = this.getPackageJsonContent();
21
+ const packagesToInstall = requiredPackages.filter(({ pkg, version, isDevDependency }) => {
22
+ const hasDependency = isDevDependency
23
+ ? packageJson.devDependencies[pkg]
24
+ : packageJson.dependencies[pkg];
25
+ return !hasDependency;
26
+ });
27
+ const depsToInstall = packagesToInstall
28
+ .filter(p => { var _a; return !p.isDevDependency && ((_a = packageJson.dependencies) === null || _a === void 0 ? void 0 : _a[p.pkg]) === undefined; })
29
+ .map(p => `${p.pkg}${p.version ? `@${p.version}` : ''}`);
30
+ const devDepsToInstall = packagesToInstall
31
+ .filter(p => { var _a; return p.isDevDependency && ((_a = packageJson.devDependencies) === null || _a === void 0 ? void 0 : _a[p.pkg]) === undefined; })
32
+ .map(p => `${p.pkg}${p.version ? `@${p.version}` : ''}`);
33
+ if (depsToInstall.length) {
34
+ await this.runPackageManagerInstall(depsToInstall, false);
35
+ }
36
+ if (devDepsToInstall.length) {
37
+ await this.runPackageManagerInstall(devDepsToInstall, true);
38
+ }
39
+ }
40
+ getPackageJsonContent() {
41
+ const packageJsonPath = path_1.default.join(this.getPackageRootDir().getPath(), 'package.json');
42
+ if (!fs_extra_1.default.existsSync(packageJsonPath)) {
43
+ (0, prompts_1.note)(`Could not find a package.json in the current directory. Please run this command from the root of a Vendure project.`);
44
+ return false;
45
+ }
46
+ return fs_extra_1.default.readJsonSync(packageJsonPath);
47
+ }
48
+ determinePackageManager() {
49
+ const rootDir = this.getPackageRootDir().getPath();
50
+ const yarnLockPath = path_1.default.join(rootDir, 'yarn.lock');
51
+ const npmLockPath = path_1.default.join(rootDir, 'package-lock.json');
52
+ const pnpmLockPath = path_1.default.join(rootDir, 'pnpm-lock.yaml');
53
+ if (fs_extra_1.default.existsSync(yarnLockPath)) {
54
+ return 'yarn';
55
+ }
56
+ if (fs_extra_1.default.existsSync(npmLockPath)) {
57
+ return 'npm';
58
+ }
59
+ if (fs_extra_1.default.existsSync(pnpmLockPath)) {
60
+ return 'pnpm';
61
+ }
62
+ return 'npm';
63
+ }
64
+ addScript(scriptName, script) {
65
+ const packageJson = this.getPackageJsonContent();
66
+ packageJson.scripts = packageJson.scripts || {};
67
+ packageJson.scripts[scriptName] = script;
68
+ const rootDir = this.getPackageRootDir();
69
+ const packageJsonPath = path_1.default.join(rootDir.getPath(), 'package.json');
70
+ fs_extra_1.default.writeJsonSync(packageJsonPath, packageJson, { spaces: 2 });
71
+ }
72
+ getPackageRootDir() {
73
+ const rootDir = this.project.getDirectory('.');
74
+ if (!rootDir) {
75
+ throw new Error('Could not find the root directory of the project');
76
+ }
77
+ return rootDir;
78
+ }
79
+ async runPackageManagerInstall(dependencies, isDev) {
80
+ return new Promise((resolve, reject) => {
81
+ const packageManager = this.determinePackageManager();
82
+ let command = '';
83
+ let args = [];
84
+ if (packageManager === 'yarn') {
85
+ command = 'yarnpkg';
86
+ args = ['add', '--exact', '--ignore-engines'];
87
+ if (isDev) {
88
+ args.push('--dev');
89
+ }
90
+ args = args.concat(dependencies);
91
+ }
92
+ else {
93
+ command = 'npm';
94
+ args = ['install', '--save', '--save-exact', '--loglevel', 'error'].concat(dependencies);
95
+ if (isDev) {
96
+ args.push('--save-dev');
97
+ }
98
+ }
99
+ const child = (0, cross_spawn_1.default)(command, args, { stdio: 'ignore' });
100
+ child.on('close', code => {
101
+ if (code !== 0) {
102
+ const message = 'An error occurred when installing dependencies.';
103
+ reject({
104
+ message,
105
+ command: `${command} ${args.join(' ')}`,
106
+ });
107
+ return;
108
+ }
109
+ resolve();
110
+ });
111
+ });
112
+ }
113
+ }
114
+ exports.PackageJson = PackageJson;
115
+ //# sourceMappingURL=package-json-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json-ref.js","sourceRoot":"","sources":["../../src/shared/package-json-ref.ts"],"names":[],"mappings":"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"}