@flarum/cli 1.0.0 → 2.0.0-beta.12

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 (193) hide show
  1. package/README.md +2 -2
  2. package/bin/run +5 -3
  3. package/boilerplate/skeleton/extension/.gitattributes +17 -3
  4. package/boilerplate/skeleton/extension/.github/workflows/backend.yml +15 -0
  5. package/boilerplate/skeleton/extension/.github/workflows/frontend.yml +20 -0
  6. package/boilerplate/skeleton/extension/.styleci.yml +14 -0
  7. package/boilerplate/skeleton/extension/LICENSE.md +1 -0
  8. package/boilerplate/skeleton/extension/README.md +7 -7
  9. package/boilerplate/skeleton/extension/composer.json +11 -9
  10. package/boilerplate/skeleton/extension/extend.php +10 -10
  11. package/boilerplate/skeleton/extension/gitignore +12 -0
  12. package/boilerplate/skeleton/extension/js/.bundlewatch.config.json +8 -0
  13. package/boilerplate/skeleton/extension/js/admin.js +2 -1
  14. package/boilerplate/skeleton/extension/js/admin.ts +2 -0
  15. package/boilerplate/skeleton/extension/js/forum.js +2 -1
  16. package/boilerplate/skeleton/extension/js/forum.ts +2 -0
  17. package/boilerplate/skeleton/extension/js/gitignore +9 -0
  18. package/boilerplate/skeleton/extension/js/package.json +13 -9
  19. package/boilerplate/skeleton/extension/js/src/admin/index.js +4 -2
  20. package/boilerplate/skeleton/extension/js/src/admin/index.ts +5 -0
  21. package/boilerplate/skeleton/extension/js/src/common/index.js +5 -0
  22. package/boilerplate/skeleton/extension/js/src/common/index.ts +5 -0
  23. package/boilerplate/skeleton/extension/js/src/forum/index.js +4 -2
  24. package/boilerplate/skeleton/extension/js/src/forum/index.ts +5 -0
  25. package/boilerplate/skeleton/extension/js/tsconfig.json +6 -1
  26. package/boilerplate/skeleton/extension/locale/en.yml +1 -1
  27. package/boilerplate/stubs/migration.php +1 -1
  28. package/lib/base-command.d.ts +29 -6
  29. package/lib/base-command.js +145 -59
  30. package/lib/boilersmith/exposed-param-manager.d.ts +8 -0
  31. package/lib/boilersmith/exposed-param-manager.js +31 -0
  32. package/lib/boilersmith/io.d.ts +54 -0
  33. package/lib/boilersmith/io.js +97 -0
  34. package/lib/boilersmith/paths.d.ts +22 -0
  35. package/lib/boilersmith/paths.js +29 -0
  36. package/lib/boilersmith/scaffolding/audit-step-factory.d.ts +5 -0
  37. package/lib/boilersmith/scaffolding/audit-step-factory.js +61 -0
  38. package/lib/boilersmith/scaffolding/infra-step-factory.d.ts +5 -0
  39. package/lib/boilersmith/scaffolding/infra-step-factory.js +34 -0
  40. package/lib/boilersmith/scaffolding/init-step-factory.d.ts +5 -0
  41. package/lib/boilersmith/scaffolding/init-step-factory.js +34 -0
  42. package/lib/boilersmith/scaffolding/module.d.ts +82 -0
  43. package/lib/boilersmith/scaffolding/module.js +116 -0
  44. package/lib/boilersmith/scaffolding/scaffolder.d.ts +32 -0
  45. package/lib/boilersmith/scaffolding/scaffolder.js +203 -0
  46. package/lib/boilersmith/scaffolding/template-param.d.ts +23 -0
  47. package/lib/boilersmith/scaffolding/template-param.js +46 -0
  48. package/lib/boilersmith/step-manager.d.ts +85 -0
  49. package/lib/boilersmith/step-manager.js +234 -0
  50. package/lib/boilersmith/steps/stub-base.d.ts +53 -0
  51. package/lib/boilersmith/steps/stub-base.js +54 -0
  52. package/lib/{utils → boilersmith/utils}/clone-and-fill.d.ts +0 -0
  53. package/lib/{utils → boilersmith/utils}/clone-and-fill.js +2 -2
  54. package/lib/boilersmith/utils/cond-format.d.ts +1 -0
  55. package/lib/boilersmith/utils/cond-format.js +8 -0
  56. package/lib/boilersmith/utils/json-leaf-paths.d.ts +7 -0
  57. package/lib/boilersmith/utils/json-leaf-paths.js +17 -0
  58. package/lib/boilersmith/utils/read-tpl.d.ts +2 -0
  59. package/lib/boilersmith/utils/read-tpl.js +10 -0
  60. package/lib/boilersmith/utils/rename-keys.d.ts +1 -0
  61. package/lib/boilersmith/utils/rename-keys.js +7 -0
  62. package/lib/commands/audit/infra.d.ts +16 -0
  63. package/lib/commands/audit/infra.js +27 -0
  64. package/lib/commands/infra.d.ts +20 -0
  65. package/lib/commands/infra.js +55 -0
  66. package/lib/commands/init.d.ts +4 -3
  67. package/lib/commands/init.js +8 -6
  68. package/lib/commands/make/backend/api-controller.d.ts +4 -3
  69. package/lib/commands/make/backend/api-controller.js +3 -2
  70. package/lib/commands/make/backend/api-serializer-attributes.d.ts +4 -3
  71. package/lib/commands/make/backend/api-serializer-attributes.js +1 -1
  72. package/lib/commands/make/backend/api-serializer.d.ts +4 -3
  73. package/lib/commands/make/backend/api-serializer.js +3 -2
  74. package/lib/commands/make/backend/command.d.ts +4 -3
  75. package/lib/commands/make/backend/command.js +3 -2
  76. package/lib/commands/make/backend/event-listener.d.ts +4 -3
  77. package/lib/commands/make/backend/event-listener.js +3 -2
  78. package/lib/commands/make/backend/handler.d.ts +4 -3
  79. package/lib/commands/make/backend/handler.js +4 -3
  80. package/lib/commands/make/backend/integration-test.d.ts +4 -3
  81. package/lib/commands/make/backend/integration-test.js +3 -2
  82. package/lib/commands/make/backend/job.d.ts +4 -3
  83. package/lib/commands/make/backend/job.js +3 -2
  84. package/lib/commands/make/backend/migration.d.ts +4 -3
  85. package/lib/commands/make/backend/migration.js +3 -2
  86. package/lib/commands/make/backend/model.d.ts +4 -3
  87. package/lib/commands/make/backend/model.js +22 -21
  88. package/lib/commands/make/backend/policy.d.ts +4 -3
  89. package/lib/commands/make/backend/policy.js +3 -2
  90. package/lib/commands/make/backend/repository.d.ts +4 -3
  91. package/lib/commands/make/backend/repository.js +3 -2
  92. package/lib/commands/make/backend/route.d.ts +4 -3
  93. package/lib/commands/make/backend/route.js +1 -1
  94. package/lib/commands/make/backend/service-provider.d.ts +4 -3
  95. package/lib/commands/make/backend/service-provider.js +3 -2
  96. package/lib/commands/make/backend/validator.d.ts +4 -3
  97. package/lib/commands/make/backend/validator.js +3 -2
  98. package/lib/commands/make/frontend/component.d.ts +4 -3
  99. package/lib/commands/make/frontend/component.js +3 -2
  100. package/lib/commands/make/frontend/modal.d.ts +4 -3
  101. package/lib/commands/make/frontend/modal.js +3 -2
  102. package/lib/commands/make/frontend/model.d.ts +4 -3
  103. package/lib/commands/make/frontend/model.js +3 -2
  104. package/lib/commands/update/js-imports.d.ts +4 -3
  105. package/lib/commands/update/js-imports.js +1 -1
  106. package/lib/help.d.ts +5 -6
  107. package/lib/help.js +5 -4
  108. package/lib/index.d.ts +1 -1
  109. package/lib/index.js +3 -2
  110. package/lib/providers/index.d.ts +5 -0
  111. package/lib/providers/index.js +2 -0
  112. package/lib/{provider → providers}/php-provider.d.ts +0 -0
  113. package/lib/{provider → providers}/php-provider.js +2 -2
  114. package/lib/steps/extenders/api-serializer.js +2 -3
  115. package/lib/steps/extenders/base.d.ts +10 -10
  116. package/lib/steps/extenders/base.js +11 -11
  117. package/lib/steps/extenders/console-command.js +2 -3
  118. package/lib/steps/extenders/event.js +2 -3
  119. package/lib/steps/extenders/policy.js +2 -3
  120. package/lib/steps/extenders/route.js +2 -3
  121. package/lib/steps/extenders/service-provider.js +2 -3
  122. package/lib/steps/gen-ext-scaffolder.d.ts +6 -0
  123. package/lib/steps/gen-ext-scaffolder.js +594 -0
  124. package/lib/steps/js/base.d.ts +9 -9
  125. package/lib/steps/js/base.js +13 -12
  126. package/lib/steps/js/model.d.ts +5 -5
  127. package/lib/steps/js/model.js +8 -13
  128. package/lib/steps/misc/composer.d.ts +5 -6
  129. package/lib/steps/misc/composer.js +3 -3
  130. package/lib/steps/misc/git.d.ts +11 -0
  131. package/lib/steps/misc/git.js +20 -0
  132. package/lib/steps/misc/yarn.d.ts +5 -6
  133. package/lib/steps/misc/yarn.js +3 -3
  134. package/lib/steps/stubs/backend/api-controller.d.ts +1 -8
  135. package/lib/steps/stubs/backend/api-controller.js +2 -3
  136. package/lib/steps/stubs/backend/api-serializer.d.ts +4 -9
  137. package/lib/steps/stubs/backend/api-serializer.js +4 -4
  138. package/lib/steps/stubs/backend/command.d.ts +0 -5
  139. package/lib/steps/stubs/backend/command.js +1 -1
  140. package/lib/steps/stubs/backend/event-listener.d.ts +0 -5
  141. package/lib/steps/stubs/backend/event-listener.js +1 -1
  142. package/lib/steps/stubs/backend/handler-command.js +1 -1
  143. package/lib/steps/stubs/backend/handler.js +1 -1
  144. package/lib/steps/stubs/backend/migration.d.ts +4 -5
  145. package/lib/steps/stubs/backend/migration.js +8 -8
  146. package/lib/steps/stubs/backend/model.d.ts +4 -4
  147. package/lib/steps/stubs/backend/model.js +4 -4
  148. package/lib/steps/stubs/backend/policy.d.ts +0 -5
  149. package/lib/steps/stubs/backend/policy.js +1 -1
  150. package/lib/steps/stubs/backend/repository.d.ts +0 -5
  151. package/lib/steps/stubs/backend/repository.js +1 -1
  152. package/lib/steps/stubs/flarum-base.d.ts +9 -0
  153. package/lib/steps/stubs/flarum-base.js +10 -0
  154. package/lib/steps/stubs/frontend/component.js +0 -1
  155. package/lib/steps/stubs/frontend/modal.js +0 -1
  156. package/lib/steps/stubs/frontend/model.d.ts +4 -4
  157. package/lib/steps/stubs/frontend/model.js +3 -3
  158. package/lib/steps/stubs/js-base.d.ts +6 -7
  159. package/lib/steps/stubs/js-base.js +11 -16
  160. package/lib/steps/stubs/php-base.d.ts +7 -8
  161. package/lib/steps/stubs/php-base.js +12 -20
  162. package/lib/steps/update/js-imports.d.ts +5 -6
  163. package/lib/steps/update/js-imports.js +16 -19
  164. package/lib/utils/composer.d.ts +64 -0
  165. package/lib/utils/composer.js +8 -0
  166. package/lib/utils/migration.js +3 -3
  167. package/lib/utils/model-name.js +6 -6
  168. package/lib/utils/validation.d.ts +10 -7
  169. package/lib/utils/validation.js +9 -6
  170. package/oclif.manifest.json +1 -1
  171. package/package.json +55 -36
  172. package/php-subsystem/src/NodeVisitors/AddExtender.php +2 -1
  173. package/boilerplate/skeleton/extension/.github/workflows/build.yml +0 -32
  174. package/boilerplate/skeleton/extension/.github/workflows/lint.yml +0 -32
  175. package/boilerplate/skeleton/extension/.github/workflows/test.yml +0 -78
  176. package/lib/commands/infra/backend-testing.d.ts +0 -14
  177. package/lib/commands/infra/backend-testing.js +0 -26
  178. package/lib/provider/param-provider.d.ts +0 -15
  179. package/lib/provider/param-provider.js +0 -39
  180. package/lib/provider/path-provider.d.ts +0 -19
  181. package/lib/provider/path-provider.js +0 -24
  182. package/lib/steps/infra/backend-testing.d.ts +0 -8
  183. package/lib/steps/infra/backend-testing.js +0 -22
  184. package/lib/steps/infra/base.d.ts +0 -20
  185. package/lib/steps/infra/base.js +0 -36
  186. package/lib/steps/init/extension-skeleton.d.ts +0 -12
  187. package/lib/steps/init/extension-skeleton.js +0 -142
  188. package/lib/steps/step-manager.d.ts +0 -71
  189. package/lib/steps/step-manager.js +0 -173
  190. package/lib/steps/stubs/base.d.ts +0 -49
  191. package/lib/steps/stubs/base.js +0 -58
  192. package/lib/utils/extension-metadata.d.ts +0 -2
  193. package/lib/utils/extension-metadata.js +0 -21
@@ -1,13 +1,14 @@
1
- import { StepManager } from '../../../steps/step-manager';
1
+ import { StepManager } from 'boilersmith/step-manager';
2
+ import { FlarumProviders } from '../../../providers';
2
3
  import BaseCommand from '../../../base-command';
3
4
  export default class Validator extends BaseCommand {
4
5
  static description: string;
5
6
  static flags: {
6
- [x: string]: import("@oclif/command/lib/flags").IFlag<any>;
7
+ [x: string]: import("@oclif/core/lib/interfaces").CompletableFlag<any>;
7
8
  };
8
9
  static args: {
9
10
  name: string;
10
11
  description: string;
11
12
  }[];
12
- protected steps(stepManager: StepManager): StepManager;
13
+ protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
13
14
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const base_command_1 = tslib_1.__importDefault(require("../../../base-command"));
4
+ const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
5
+ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-command"));
5
6
  const validator_1 = require("../../../steps/stubs/backend/validator");
6
7
  class Validator extends base_command_1.default {
7
8
  steps(stepManager) {
8
- return stepManager.step(new validator_1.GenerateValidatorStub());
9
+ return stepManager.step(new validator_1.GenerateValidatorStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
9
10
  }
10
11
  }
11
12
  exports.default = Validator;
@@ -1,13 +1,14 @@
1
- import { StepManager } from '../../../steps/step-manager';
1
+ import { StepManager } from 'boilersmith/step-manager';
2
+ import { FlarumProviders } from '../../../providers';
2
3
  import BaseCommand from '../../../base-command';
3
4
  export default class Component extends BaseCommand {
4
5
  static description: string;
5
6
  static flags: {
6
- [x: string]: import("@oclif/command/lib/flags").IFlag<any>;
7
+ [x: string]: import("@oclif/core/lib/interfaces").CompletableFlag<any>;
7
8
  };
8
9
  static args: {
9
10
  name: string;
10
11
  description: string;
11
12
  }[];
12
- protected steps(stepManager: StepManager): StepManager;
13
+ protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
13
14
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const base_command_1 = tslib_1.__importDefault(require("../../../base-command"));
4
+ const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
5
+ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-command"));
5
6
  const component_1 = require("../../../steps/stubs/frontend/component");
6
7
  class Component extends base_command_1.default {
7
8
  steps(stepManager) {
8
- return stepManager.step(new component_1.GenerateComponentStub());
9
+ return stepManager.step(new component_1.GenerateComponentStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
9
10
  }
10
11
  }
11
12
  exports.default = Component;
@@ -1,13 +1,14 @@
1
- import { StepManager } from '../../../steps/step-manager';
1
+ import { StepManager } from 'boilersmith/step-manager';
2
+ import { FlarumProviders } from '../../../providers';
2
3
  import BaseCommand from '../../../base-command';
3
4
  export default class Modal extends BaseCommand {
4
5
  static description: string;
5
6
  static flags: {
6
- [x: string]: import("@oclif/command/lib/flags").IFlag<any>;
7
+ [x: string]: import("@oclif/core/lib/interfaces").CompletableFlag<any>;
7
8
  };
8
9
  static args: {
9
10
  name: string;
10
11
  description: string;
11
12
  }[];
12
- protected steps(stepManager: StepManager): StepManager;
13
+ protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
13
14
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const base_command_1 = tslib_1.__importDefault(require("../../../base-command"));
4
+ const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
5
+ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-command"));
5
6
  const modal_1 = require("../../../steps/stubs/frontend/modal");
6
7
  class Modal extends base_command_1.default {
7
8
  steps(stepManager) {
8
- return stepManager.step(new modal_1.GenerateModalStub());
9
+ return stepManager.step(new modal_1.GenerateModalStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
9
10
  }
10
11
  }
11
12
  exports.default = Modal;
@@ -1,13 +1,14 @@
1
- import { StepManager } from '../../../steps/step-manager';
1
+ import { StepManager } from 'boilersmith/step-manager';
2
2
  import BaseCommand from '../../../base-command';
3
+ import { FlarumProviders } from '../../../providers';
3
4
  export default class Model extends BaseCommand {
4
5
  static description: string;
5
6
  static flags: {
6
- [x: string]: import("@oclif/command/lib/flags").IFlag<any>;
7
+ [x: string]: import("@oclif/core/lib/interfaces").CompletableFlag<any>;
7
8
  };
8
9
  static args: {
9
10
  name: string;
10
11
  description: string;
11
12
  }[];
12
- protected steps(stepManager: StepManager): StepManager;
13
+ protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
13
14
  }
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const base_command_1 = tslib_1.__importDefault(require("../../../base-command"));
4
+ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-command"));
5
5
  const model_1 = require("../../../steps/stubs/frontend/model");
6
6
  const model_2 = require("../../../steps/js/model");
7
+ const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
7
8
  class Model extends base_command_1.default {
8
9
  steps(stepManager) {
9
10
  return stepManager
10
11
  .atomicGroup(stepManager => {
11
12
  stepManager
12
- .namedStep('model', new model_1.GenerateModelStub())
13
+ .namedStep('model', new model_1.GenerateModelStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
13
14
  .step(new model_2.GenerateModelDefinition(), {}, [
14
15
  {
15
16
  sourceStep: 'model',
@@ -1,14 +1,15 @@
1
- import { StepManager } from '../../steps/step-manager';
1
+ import { StepManager } from 'boilersmith/step-manager';
2
2
  import BaseCommand from '../../base-command';
3
+ import { FlarumProviders } from '../../providers';
3
4
  export default class UpdateJsImports extends BaseCommand {
4
5
  static description: string;
5
6
  static flags: {
6
- [x: string]: import("@oclif/command/lib/flags").IFlag<any>;
7
+ [x: string]: import("@oclif/core/lib/interfaces").CompletableFlag<any>;
7
8
  };
8
9
  static args: {
9
10
  name: string;
10
11
  description: string;
11
12
  }[];
12
- protected steps(stepManager: StepManager): StepManager;
13
+ protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
13
14
  protected additionalPreRunChecks(extRoot: string): Promise<void>;
14
15
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const js_imports_1 = require("../../steps/update/js-imports");
5
- const base_command_1 = tslib_1.__importDefault(require("../../base-command"));
5
+ const base_command_1 = (0, tslib_1.__importDefault)(require("../../base-command"));
6
6
  class UpdateJsImports extends base_command_1.default {
7
7
  steps(stepManager) {
8
8
  return stepManager
package/lib/help.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- import { Command, Topic } from '@oclif/config';
2
- import { Help as HelpDefault } from '@oclif/plugin-help';
1
+ import { Interfaces, Help as HelpDefault } from '@oclif/core';
3
2
  export default class Help extends HelpDefault {
4
3
  protected formatRoot(): string;
5
- protected formatCommand(command: Command): string;
6
- protected formatCommands(commands: Command[]): string;
7
- protected formatTopic(topic: Topic): string;
8
- protected formatTopics(topics: Topic[]): string;
4
+ protected formatCommand(command: Interfaces.Command): string;
5
+ protected formatCommands(commands: Interfaces.Command[]): string;
6
+ protected formatTopic(topic: Interfaces.Topic): string;
7
+ protected formatTopics(topics: Interfaces.Topic[]): string;
9
8
  }
package/lib/help.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const plugin_help_1 = require("@oclif/plugin-help");
5
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
4
+ const core_1 = require("@oclif/core");
5
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
6
6
  const COLON_REGEX = /:/g;
7
7
  function prepCommand(command) {
8
- return Object.assign({}, command, { id: chalk_1.default.green(command.id.replace(COLON_REGEX, ' ')) });
8
+ var _a, _b;
9
+ return Object.assign({}, command, { id: chalk_1.default.green((_b = (_a = command.id) === null || _a === void 0 ? void 0 : _a.replace(COLON_REGEX, ' ')) !== null && _b !== void 0 ? _b : '') });
9
10
  }
10
11
  function prepTopic(topic) {
11
12
  return Object.assign({}, topic, { name: chalk_1.default.green(topic.name.replace(COLON_REGEX, ' ')) });
@@ -15,7 +16,7 @@ function colorHeaders(text) {
15
16
  return chalk_1.default.yellow(match);
16
17
  });
17
18
  }
18
- class Help extends plugin_help_1.Help {
19
+ class Help extends core_1.Help {
19
20
  formatRoot() {
20
21
  return colorHeaders(super.formatRoot());
21
22
  }
package/lib/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { run } from '@oclif/command';
1
+ export { run } from '@oclif/core';
package/lib/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var command_1 = require("@oclif/command");
4
- Object.defineProperty(exports, "run", { enumerable: true, get: function () { return command_1.run; } });
3
+ exports.run = void 0;
4
+ var core_1 = require("@oclif/core");
5
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return core_1.run; } });
@@ -0,0 +1,5 @@
1
+ import { DefaultProviders } from 'boilersmith/step-manager';
2
+ import { PhpProvider } from './php-provider';
3
+ export interface FlarumProviders extends DefaultProviders {
4
+ php: PhpProvider;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
File without changes
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PhpSubsystemProvider = exports.ParamTypeType = exports.ExpressionType = void 0;
4
- const child_process_1 = require("child_process");
4
+ const node_child_process_1 = require("node:child_process");
5
5
  var ExpressionType;
6
6
  (function (ExpressionType) {
7
7
  ExpressionType["SCALAR"] = "scalar";
@@ -24,7 +24,7 @@ class PhpSubsystemProvider {
24
24
  op: 'extender.add',
25
25
  params: extenderDef,
26
26
  });
27
- const res = child_process_1.execSync(`php ${this.phpPath}`, { input });
27
+ const res = (0, node_child_process_1.execSync)(`php ${this.phpPath}`, { input });
28
28
  if (!res) {
29
29
  throw new Error(`The PHP subsystem returned an invalid value: ${res}`);
30
30
  }
@@ -2,10 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateApiSerializerAttributesExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
5
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
7
6
  const validation_1 = require("../../utils/validation");
8
- const php_provider_1 = require("../../provider/php-provider");
7
+ const php_provider_1 = require("../../providers/php-provider");
9
8
  const base_1 = require("./base");
10
9
  class GenerateApiSerializerAttributesExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
@@ -1,24 +1,24 @@
1
1
  import { Store } from 'mem-fs';
2
- import { PromptObject } from 'prompts';
3
- import { ParamProvider } from '../../provider/param-provider';
4
- import { PathProvider } from '../../provider/path-provider';
5
- import { ExtenderDef, PhpProvider } from '../../provider/php-provider';
6
- import { Step } from '../step-manager';
7
- interface UserProvidedParam extends Omit<PromptObject, 'type'> {
2
+ import { ParamDef, IO } from 'boilersmith/io';
3
+ import { Paths } from 'boilersmith/paths';
4
+ import { ExtenderDef } from '../../providers/php-provider';
5
+ import { Step } from 'boilersmith/step-manager';
6
+ import { FlarumProviders } from '../../providers';
7
+ interface UserProvidedParam extends Omit<ParamDef, 'type'> {
8
8
  type: string;
9
9
  }
10
10
  export interface ExtenderGenerationSchema {
11
11
  extenderDef: ExtenderDef;
12
12
  params: UserProvidedParam[];
13
13
  }
14
- export declare abstract class BaseExtenderStep implements Step {
14
+ export declare abstract class BaseExtenderStep implements Step<FlarumProviders> {
15
15
  abstract type: string;
16
16
  protected abstract schema: ExtenderGenerationSchema;
17
17
  composable: boolean;
18
18
  exposes: never[];
19
- getExposed(): {};
19
+ getExposed(): Record<string, unknown>;
20
20
  protected params: Record<string, unknown>;
21
- run(fs: Store, pathProvider: PathProvider, paramProvider: ParamProvider, phpProvider: PhpProvider): Promise<Store>;
22
- protected compileParams(paramProvider: ParamProvider): Promise<Record<string, unknown>>;
21
+ run(fs: Store, paths: Paths, io: IO, providers: FlarumProviders): Promise<Store>;
22
+ protected compileParams(io: IO): Promise<Record<string, unknown>>;
23
23
  }
24
24
  export {};
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseExtenderStep = void 0;
4
4
  const mem_fs_editor_1 = require("mem-fs-editor");
5
- const clone_and_fill_1 = require("../../utils/clone-and-fill");
5
+ const clone_and_fill_1 = require("boilersmith/utils/clone-and-fill");
6
6
  class BaseExtenderStep {
7
7
  constructor() {
8
8
  this.composable = true;
@@ -11,21 +11,21 @@ class BaseExtenderStep {
11
11
  getExposed() {
12
12
  return {};
13
13
  }
14
- async run(fs, pathProvider, paramProvider, phpProvider) {
15
- const fsEditor = mem_fs_editor_1.create(fs);
16
- this.params = await this.compileParams(paramProvider);
17
- const filledExtenderDef = clone_and_fill_1.cloneAndFill(this.schema.extenderDef, this.params);
18
- const currExtendPhp = fsEditor.read(pathProvider.ext('extend.php'));
19
- const newExtendPhp = phpProvider.withExtender(currExtendPhp, filledExtenderDef);
20
- fsEditor.write(pathProvider.ext('extend.php'), newExtendPhp);
14
+ async run(fs, paths, io, providers) {
15
+ const fsEditor = (0, mem_fs_editor_1.create)(fs);
16
+ this.params = await this.compileParams(io);
17
+ const filledExtenderDef = (0, clone_and_fill_1.cloneAndFill)(this.schema.extenderDef, this.params);
18
+ const currExtendPhp = fsEditor.read(paths.package('extend.php'));
19
+ const newExtendPhp = providers.php.withExtender(currExtendPhp, filledExtenderDef);
20
+ fsEditor.write(paths.package('extend.php'), newExtendPhp);
21
21
  return fs;
22
22
  }
23
- async compileParams(paramProvider) {
23
+ async compileParams(io) {
24
24
  const params = {};
25
25
  const paramDefs = this.schema.params;
26
- for (let i = 0; i < paramDefs.length; i++) {
26
+ for (const paramDef of paramDefs) {
27
27
  // eslint-disable-next-line no-await-in-loop
28
- params[paramDefs[i].name] = await paramProvider.get(paramDefs[i]);
28
+ params[paramDef.name] = await io.getParam(paramDef);
29
29
  }
30
30
  return params;
31
31
  }
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateConsoleCommandExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
5
  const validation_1 = require("../../utils/validation");
7
- const php_provider_1 = require("../../provider/php-provider");
6
+ const php_provider_1 = require("../../providers/php-provider");
8
7
  const base_1 = require("./base");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
10
9
  class GenerateConsoleCommandExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
12
11
  super(...arguments);
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateEventListenerExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
5
  const validation_1 = require("../../utils/validation");
7
- const php_provider_1 = require("../../provider/php-provider");
6
+ const php_provider_1 = require("../../providers/php-provider");
8
7
  const base_1 = require("./base");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
10
9
  class GenerateEventListenerExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
12
11
  super(...arguments);
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GeneratePolicyExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
5
  const validation_1 = require("../../utils/validation");
7
- const php_provider_1 = require("../../provider/php-provider");
6
+ const php_provider_1 = require("../../providers/php-provider");
8
7
  const base_1 = require("./base");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
10
9
  class GeneratePolicyExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
12
11
  super(...arguments);
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateRoutesExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
5
  const validation_1 = require("../../utils/validation");
7
- const php_provider_1 = require("../../provider/php-provider");
6
+ const php_provider_1 = require("../../providers/php-provider");
8
7
  const base_1 = require("./base");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
10
9
  class GenerateRoutesExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
12
11
  super(...arguments);
@@ -2,11 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GenerateServiceProviderExtender = void 0;
4
4
  const tslib_1 = require("tslib");
5
- /* eslint-disable no-template-curly-in-string */
6
5
  const validation_1 = require("../../utils/validation");
7
- const php_provider_1 = require("../../provider/php-provider");
6
+ const php_provider_1 = require("../../providers/php-provider");
8
7
  const base_1 = require("./base");
9
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
8
+ const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
10
9
  class GenerateServiceProviderExtender extends base_1.BaseExtenderStep {
11
10
  constructor() {
12
11
  super(...arguments);
@@ -0,0 +1,6 @@
1
+ import { Scaffolder } from 'boilersmith/scaffolding/scaffolder';
2
+ export declare const EXTENSION_PARAMS: readonly ["packageName", "packageDescription", "packageNamespace", "authorName", "authorEmail", "extensionName", "licenseType", "mainGitBranch", "licenseText", "packageNamespaceEscapedSlash", "extensionId", "year", "backendDirectory", "frontendDirectory"];
3
+ export declare type ExtensionParams = typeof EXTENSION_PARAMS[number];
4
+ export declare const EXTENSION_MODULES: readonly ["core", "icon", "admin", "forum", "js", "jsCommon", "css", "locale", "gitConf", "githubActions", "prettier", "typescript", "bundlewatch", "backendTesting", "editorConfig", "styleci"];
5
+ export declare type ExtensionModules = typeof EXTENSION_MODULES[number];
6
+ export declare function genExtScaffolder(): Scaffolder<ExtensionParams, ExtensionModules>;