apify-cli 0.21.3 → 0.21.4-beta.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 (94) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +65 -65
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/commands/actors/pull.d.ts.map +1 -1
  5. package/dist/commands/actors/pull.js +8 -11
  6. package/dist/commands/actors/pull.js.map +1 -1
  7. package/dist/commands/actors/push.d.ts.map +1 -1
  8. package/dist/commands/actors/push.js +17 -20
  9. package/dist/commands/actors/push.js.map +1 -1
  10. package/dist/commands/actors/rm.js +1 -1
  11. package/dist/commands/actors/rm.js.map +1 -1
  12. package/dist/commands/builds/rm.js +1 -1
  13. package/dist/commands/builds/rm.js.map +1 -1
  14. package/dist/commands/create.d.ts.map +1 -1
  15. package/dist/commands/create.js +122 -77
  16. package/dist/commands/create.js.map +1 -1
  17. package/dist/commands/datasets/info.d.ts +1 -0
  18. package/dist/commands/datasets/info.d.ts.map +1 -1
  19. package/dist/commands/datasets/rm.js +1 -1
  20. package/dist/commands/datasets/rm.js.map +1 -1
  21. package/dist/commands/init.d.ts.map +1 -1
  22. package/dist/commands/init.js +22 -19
  23. package/dist/commands/init.js.map +1 -1
  24. package/dist/commands/key-value-stores/delete-value.js +1 -1
  25. package/dist/commands/key-value-stores/delete-value.js.map +1 -1
  26. package/dist/commands/key-value-stores/info.d.ts +1 -0
  27. package/dist/commands/key-value-stores/info.d.ts.map +1 -1
  28. package/dist/commands/key-value-stores/rm.js +1 -1
  29. package/dist/commands/key-value-stores/rm.js.map +1 -1
  30. package/dist/commands/run.d.ts.map +1 -1
  31. package/dist/commands/run.js +125 -103
  32. package/dist/commands/run.js.map +1 -1
  33. package/dist/commands/runs/info.d.ts +1 -0
  34. package/dist/commands/runs/info.d.ts.map +1 -1
  35. package/dist/commands/runs/rm.js +1 -1
  36. package/dist/commands/runs/rm.js.map +1 -1
  37. package/dist/lib/apify_command.d.ts.map +1 -1
  38. package/dist/lib/apify_command.js +13 -9
  39. package/dist/lib/apify_command.js.map +1 -1
  40. package/dist/lib/exec.d.ts +7 -1
  41. package/dist/lib/exec.d.ts.map +1 -1
  42. package/dist/lib/exec.js +3 -3
  43. package/dist/lib/exec.js.map +1 -1
  44. package/dist/lib/files.d.ts.map +1 -1
  45. package/dist/lib/files.js +4 -5
  46. package/dist/lib/files.js.map +1 -1
  47. package/dist/lib/hooks/runtimes/javascript.d.ts +4 -0
  48. package/dist/lib/hooks/runtimes/javascript.d.ts.map +1 -0
  49. package/dist/lib/hooks/runtimes/javascript.js +79 -0
  50. package/dist/lib/hooks/runtimes/javascript.js.map +1 -0
  51. package/dist/lib/hooks/runtimes/python.d.ts +8 -0
  52. package/dist/lib/hooks/runtimes/python.d.ts.map +1 -0
  53. package/dist/lib/hooks/runtimes/python.js +80 -0
  54. package/dist/lib/hooks/runtimes/python.js.map +1 -0
  55. package/dist/lib/hooks/useActorConfig.d.ts +20 -0
  56. package/dist/lib/hooks/useActorConfig.d.ts.map +1 -0
  57. package/dist/lib/hooks/useActorConfig.js +175 -0
  58. package/dist/lib/hooks/useActorConfig.js.map +1 -0
  59. package/dist/lib/hooks/useCwdProject.d.ts +33 -0
  60. package/dist/lib/hooks/useCwdProject.d.ts.map +1 -0
  61. package/dist/lib/hooks/useCwdProject.js +142 -0
  62. package/dist/lib/hooks/useCwdProject.js.map +1 -0
  63. package/dist/lib/hooks/useModuleVersion.d.ts +8 -0
  64. package/dist/lib/hooks/useModuleVersion.d.ts.map +1 -0
  65. package/dist/lib/hooks/useModuleVersion.js +95 -0
  66. package/dist/lib/hooks/useModuleVersion.js.map +1 -0
  67. package/dist/lib/input_schema.d.ts.map +1 -1
  68. package/dist/lib/input_schema.js +14 -7
  69. package/dist/lib/input_schema.js.map +1 -1
  70. package/dist/lib/local_state.d.ts +1 -1
  71. package/dist/lib/local_state.d.ts.map +1 -1
  72. package/dist/lib/local_state.js +3 -7
  73. package/dist/lib/local_state.js.map +1 -1
  74. package/dist/lib/secrets.d.ts +1 -1
  75. package/dist/lib/secrets.d.ts.map +1 -1
  76. package/dist/lib/secrets.js +5 -7
  77. package/dist/lib/secrets.js.map +1 -1
  78. package/dist/lib/telemetry.d.ts +1 -1
  79. package/dist/lib/telemetry.d.ts.map +1 -1
  80. package/dist/lib/telemetry.js +5 -8
  81. package/dist/lib/telemetry.js.map +1 -1
  82. package/dist/lib/{commands → utils}/confirm.d.ts +2 -1
  83. package/dist/lib/utils/confirm.d.ts.map +1 -0
  84. package/dist/lib/{commands → utils}/confirm.js +8 -6
  85. package/dist/lib/utils/confirm.js.map +1 -0
  86. package/dist/lib/utils.d.ts +1 -6
  87. package/dist/lib/utils.d.ts.map +1 -1
  88. package/dist/lib/utils.js +13 -200
  89. package/dist/lib/utils.js.map +1 -1
  90. package/dist/typechecking.tsbuildinfo +1 -1
  91. package/oclif.manifest.json +353 -353
  92. package/package.json +8 -10
  93. package/dist/lib/commands/confirm.d.ts.map +0 -1
  94. package/dist/lib/commands/confirm.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  import { ACTOR_JOB_STATUSES } from '@apify/consts';
2
2
  import { Args } from '@oclif/core';
3
3
  import { ApifyCommand } from '../../lib/apify_command.js';
4
- import { confirmAction } from '../../lib/commands/confirm.js';
5
4
  import { error, info, success } from '../../lib/outputs.js';
5
+ import { confirmAction } from '../../lib/utils/confirm.js';
6
6
  import { getLoggedClientOrThrow } from '../../lib/utils.js';
7
7
  const deletableStatuses = [
8
8
  ACTOR_JOB_STATUSES.SUCCEEDED,
@@ -1 +1 @@
1
- {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/runs/rm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,iBAAiB,GAAG;IACzB,kBAAkB,CAAC,SAAS;IAC5B,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,OAAO;IAC1B,kBAAkB,CAAC,SAAS;CAC5B,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,YAAkC;IACpE,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAC;IAEtD,MAAM,CAAU,IAAI,GAAG;QACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACd,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE5B,MAAM,WAAW,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAEnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAE/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,KAAK,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,kCAAkC,EAAE,CAAC,CAAC;YAC5E,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAe,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC;gBACL,OAAO,EAAE,gBAAgB,KAAK,4EAA4E;aAC1G,CAAC,CAAC;YAEH,OAAO;QACR,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC;YAC3C,IAAI,EAAE,WAAW;YACjB,cAAc,EAAE,gDAAgD;SAChE,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,OAAO,EAAE,oBAAoB,KAAK,iBAAiB;aACnD,CAAC,CAAC;YAEH,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAEtC,OAAO,CAAC;gBACP,OAAO,EAAE,gBAAgB,KAAK,gBAAgB;aAC9C,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAoB,CAAC;YACpC,KAAK,CAAC,EAAE,OAAO,EAAE,yBAAyB,KAAK,SAAS,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;IACF,CAAC"}
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/runs/rm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,iBAAiB,GAAG;IACzB,kBAAkB,CAAC,SAAS;IAC5B,kBAAkB,CAAC,MAAM;IACzB,kBAAkB,CAAC,OAAO;IAC1B,kBAAkB,CAAC,SAAS;CAC5B,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,YAAkC;IACpE,MAAM,CAAU,WAAW,GAAG,uBAAuB,CAAC;IAEtD,MAAM,CAAU,IAAI,GAAG;QACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACd,CAAC;KACF,CAAC;IAEF,KAAK,CAAC,GAAG;QACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE5B,MAAM,WAAW,GAAG,MAAM,sBAAsB,EAAE,CAAC;QAEnD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAE/C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,KAAK,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,kCAAkC,EAAE,CAAC,CAAC;YAC5E,OAAO;QACR,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAe,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC;gBACL,OAAO,EAAE,gBAAgB,KAAK,4EAA4E;aAC1G,CAAC,CAAC;YAEH,OAAO;QACR,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC;YAC3C,IAAI,EAAE,WAAW;YACjB,cAAc,EAAE,gDAAgD;SAChE,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE,CAAC;YACtB,IAAI,CAAC;gBACJ,OAAO,EAAE,oBAAoB,KAAK,iBAAiB;aACnD,CAAC,CAAC;YAEH,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAEtC,OAAO,CAAC;gBACP,OAAO,EAAE,gBAAgB,KAAK,gBAAgB;aAC9C,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAoB,CAAC;YACpC,KAAK,CAAC,EAAE,OAAO,EAAE,yBAAyB,KAAK,SAAS,MAAM,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QACvF,CAAC;IACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"apify_command.d.ts","sourceRoot":"","sources":["../../src/lib/apify_command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,aAAa,CAAC;AAItE,OAAO,EAAE,KAAK,eAAe,EAA6C,MAAM,YAAY,CAAC;AAG7F,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzG,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAErF;;GAEG;AACH,8BAAsB,YAAY,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IAC3E,SAAS,CAAC,aAAa,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElD,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,IAAI,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAEf,IAAI;IAmBJ,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK;IAoC5B,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM;IAMtC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAGhF"}
1
+ {"version":3,"file":"apify_command.d.ts","sourceRoot":"","sources":["../../src/lib/apify_command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,aAAa,CAAC;AAKtE,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,YAAY,CAAC;AAGnE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzG,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,OAAO,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAErF;;GAEG;AACH,8BAAsB,YAAY,CAAC,CAAC,SAAS,OAAO,OAAO,CAAE,SAAQ,OAAO;IAC3E,SAAS,CAAC,aAAa,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElD,SAAS,CAAC,KAAK,EAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,SAAS,CAAC,IAAI,EAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAEf,IAAI;IAmBJ,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK;IA0C5B,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM;IAMtC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;CAGhF"}
@@ -1,8 +1,9 @@
1
1
  import process from 'node:process';
2
2
  import { Command, loadHelpClass } from '@oclif/core';
3
3
  import { COMMANDS_WITHIN_ACTOR, LANGUAGE } from './consts.js';
4
+ import { ProjectLanguage, useCwdProject } from './hooks/useCwdProject.js';
4
5
  import { maybeTrackTelemetry } from './telemetry.js';
5
- import { argsToCamelCase, detectLocalActorLanguage } from './utils.js';
6
+ import { argsToCamelCase } from './utils.js';
6
7
  import { detectInstallationType } from './version_check.js';
7
8
  /**
8
9
  * Adding parsing flags to oclif Command class
@@ -41,14 +42,17 @@ export class ApifyCommand extends Command {
41
42
  try {
42
43
  eventData.installationType = detectInstallationType();
43
44
  if (!this.telemetryData.actorLanguage && command && COMMANDS_WITHIN_ACTOR.includes(command)) {
44
- const { language, languageVersion } = detectLocalActorLanguage(process.cwd());
45
- eventData.actorLanguage = language;
46
- if (language === LANGUAGE.NODEJS) {
47
- eventData.actorNodejsVersion = languageVersion;
48
- }
49
- else if (language === LANGUAGE.PYTHON) {
50
- eventData.actorPythonVersion = languageVersion;
51
- }
45
+ const cwdProject = await useCwdProject();
46
+ cwdProject.inspect((project) => {
47
+ if (project.type === ProjectLanguage.JavaScript) {
48
+ eventData.actorLanguage = LANGUAGE.NODEJS;
49
+ eventData.actorNodejsVersion = project.runtime.version;
50
+ }
51
+ else if (project.type === ProjectLanguage.Python || project.type === ProjectLanguage.Scrapy) {
52
+ eventData.actorLanguage = LANGUAGE.PYTHON;
53
+ eventData.actorPythonVersion = project.runtime.version;
54
+ }
55
+ });
52
56
  }
53
57
  await maybeTrackTelemetry({
54
58
  eventName: `cli_command_${command}`,
@@ -1 +1 @@
1
- {"version":3,"file":"apify_command.js","sourceRoot":"","sources":["../../src/lib/apify_command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apify_command.js","sourceRoot":"","sources":["../../src/lib/apify_command.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
1
  import { type SpawnOptionsWithoutStdio } from 'node:child_process';
2
- export declare function execWithLog(cmd: string, args?: string[], opts?: SpawnOptionsWithoutStdio): Promise<void>;
2
+ export interface ExecWithLogOptions {
3
+ cmd: string;
4
+ args?: string[];
5
+ opts?: SpawnOptionsWithoutStdio;
6
+ overrideCommand?: string;
7
+ }
8
+ export declare function execWithLog({ cmd, args, opts, overrideCommand }: ExecWithLogOptions): Promise<void>;
3
9
  //# sourceMappingURL=exec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,wBAAwB,EAAS,MAAM,oBAAoB,CAAC;AA0C7F,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,IAAI,GAAE,wBAA6B,iBAGtG"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,wBAAwB,EAAS,MAAM,oBAAoB,CAAC;AA0C7F,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,WAAW,CAAC,EAAE,GAAG,EAAE,IAAS,EAAE,IAAS,EAAE,eAAe,EAAE,EAAE,kBAAkB,iBAGnG"}
package/dist/lib/exec.js CHANGED
@@ -20,7 +20,7 @@ const spawnPromised = async (cmd, args, opts) => {
20
20
  // NOTE: This fix kills also puppeteer child node process
21
21
  process.on('SIGINT', () => {
22
22
  try {
23
- childProcess.kill();
23
+ childProcess.kill('SIGINT');
24
24
  }
25
25
  catch {
26
26
  // SIGINT can come after the child process is finished, ignore it
@@ -35,8 +35,8 @@ const spawnPromised = async (cmd, args, opts) => {
35
35
  });
36
36
  });
37
37
  };
38
- export async function execWithLog(cmd, args = [], opts = {}) {
39
- run({ message: `${cmd} ${args.join(' ')}` });
38
+ export async function execWithLog({ cmd, args = [], opts = {}, overrideCommand }) {
39
+ run({ message: `${overrideCommand || cmd} ${args.join(' ')}` });
40
40
  await spawnPromised(cmd, args, opts);
41
41
  }
42
42
  //# sourceMappingURL=exec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,MAAM,cAAc,GAAiB;IACpC,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,IAAc,EAAE,IAA8B,EAAE,EAAE;IAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1F,6CAA6C;IAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE;QAChD,GAAG,IAAI;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,gDAAgD;IAChD,yDAAyD;IACzD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC;YACJ,YAAY,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACR,iEAAiE;QAClE,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,CAAC;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAiB,EAAE,EAAE,OAAiC,EAAE;IACtG,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/lib/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,MAAM,cAAc,GAAiB;IACpC,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,KAAK,EAAE,GAAW,EAAE,IAAc,EAAE,IAA8B,EAAE,EAAE;IAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1F,6CAA6C;IAC7C,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE;QAChD,GAAG,IAAI;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,gDAAgD;IAChD,yDAAyD;IACzD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACR,iEAAiE;QAClE,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,CAAC;gBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,OAAO,EAAE,CAAC;QACX,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,eAAe,EAAsB;IACnG,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,eAAe,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,GAC3B,cAAc,MAAM,EACpB,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,uBAAuB,kBAcvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,EAAE,aAAa,MAAM,SAgB3E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,iBAAiB,MAAM,GAAG,MAAM,EAAE,kBAEtE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,kBAKhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,EAAE,EAAE,KAAK,MAAM,oBAM3E,CAAC"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,GAC3B,cAAc,MAAM,EACpB,cAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACzC,uBAAuB,kBAevB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,UAAU,MAAM,EAAE,aAAa,MAAM,SAgB3E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,iBAAiB,MAAM,GAAG,MAAM,EAAE,kBAEtE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,kBAKhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,EAAE,EAAE,KAAK,MAAM,oBAM3E,CAAC"}
package/dist/lib/files.js CHANGED
@@ -1,12 +1,11 @@
1
1
  import { existsSync, mkdirSync } from 'node:fs';
2
- import { stat, unlink } from 'node:fs/promises';
2
+ import { readFile, stat, unlink, writeFile } from 'node:fs/promises';
3
3
  import { join, sep } from 'node:path';
4
- import { loadJsonFile } from 'load-json-file';
5
4
  import { rimraf } from 'rimraf';
6
- import { writeJsonFile } from 'write-json-file';
7
5
  export const updateLocalJson = async (jsonFilePath, updateAttrs = {}, nestedObjectAttr = null) => {
6
+ const raw = await readFile(jsonFilePath, 'utf-8');
8
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
- const currentObject = (await loadJsonFile(jsonFilePath));
8
+ const currentObject = JSON.parse(raw);
10
9
  let newObject;
11
10
  if (nestedObjectAttr) {
12
11
  newObject = currentObject;
@@ -15,7 +14,7 @@ export const updateLocalJson = async (jsonFilePath, updateAttrs = {}, nestedObje
15
14
  else {
16
15
  newObject = { ...currentObject, ...updateAttrs };
17
16
  }
18
- await writeJsonFile(jsonFilePath, newObject);
17
+ await writeFile(jsonFilePath, JSON.stringify(newObject, null, '\t'));
19
18
  };
20
19
  /**
21
20
  * If you pass /foo/bar as rootPath and /baz/raz as folderPath then it ensures that following folders exists:
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EACnC,YAAoB,EACpB,cAAuC,EAAE,EACzC,gBAAgB,GAAG,IAAI,EACtB,EAAE;IACH,8DAA8D;IAC9D,MAAM,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC,CAAwB,CAAC;IAChF,IAAI,SAAkC,CAAC;IAEvC,IAAI,gBAAgB,EAAE,CAAC;QACtB,SAAS,GAAG,aAAa,CAAC;QAC1B,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,gBAAgB,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IACtF,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,WAAW,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,QAAgB,EAAE,UAAmB,EAAE,EAAE;IAC/E,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,UAAU,GAAG,QAAQ,CAAC;QACtB,QAAQ,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE;QACxC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,SAAS,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,WAAW,CAAC;IACpB,CAAC,EAAE,QAAQ,CAAC,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,eAAkC,EAAE,EAAE;IAC1E,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;IACpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QAClB,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAqB,EAAE,GAAW,EAAE,EAAE;IAC/E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAErG,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE1G,OAAO,cAAc,CAAC;AACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/lib/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type Option } from '@sapphire/result';
2
+ import type { Runtime } from '../useCwdProject.js';
3
+ export declare function useJavaScriptRuntime(cwd?: string): Promise<Option<Runtime>>;
4
+ //# sourceMappingURL=javascript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/runtimes/javascript.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AA0CnD,wBAAsB,oBAAoB,CAAC,GAAG,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAiDxF"}
@@ -0,0 +1,79 @@
1
+ import process from 'node:process';
2
+ import { none, some } from '@sapphire/result';
3
+ import { execa } from 'execa';
4
+ import which from 'which';
5
+ const cwdCache = new Map();
6
+ // Runtimes, in order of preference
7
+ const runtimesToCheck = {
8
+ node: ['--version'],
9
+ deno: ['eval', '"console.log(process.versions.node)"'],
10
+ bun: ['--eval', '"console.log(process.versions.node)"'],
11
+ };
12
+ async function getRuntimeVersion(runtimePath, args) {
13
+ try {
14
+ const result = await execa(runtimePath, args, {
15
+ shell: true,
16
+ windowsHide: true,
17
+ });
18
+ // No output -> issue or who knows
19
+ if (!result.stdout) {
20
+ return null;
21
+ }
22
+ return result.stdout.trim().replace(/^v/, '');
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ async function getNpmVersion(npmPath) {
29
+ const result = await execa(npmPath, ['--version'], {
30
+ shell: true,
31
+ windowsHide: true,
32
+ });
33
+ if (!result.stdout) {
34
+ return null;
35
+ }
36
+ return result.stdout.trim().replace(/^v/, '');
37
+ }
38
+ export async function useJavaScriptRuntime(cwd = process.cwd()) {
39
+ const cached = cwdCache.get(cwd);
40
+ if (cached) {
41
+ return cached;
42
+ }
43
+ for (const [runtime, args] of Object.entries(runtimesToCheck)) {
44
+ try {
45
+ const runtimePath = await which(runtime);
46
+ const version = await getRuntimeVersion(runtimePath, args);
47
+ if (version) {
48
+ const res = {
49
+ executablePath: runtimePath,
50
+ version,
51
+ };
52
+ // For npm, we also fetch the npm version
53
+ if (runtime === 'node') {
54
+ const npmPath = await which('npm').catch(() => null);
55
+ if (npmPath) {
56
+ res.pmPath = npmPath;
57
+ res.pmVersion = await getNpmVersion(npmPath);
58
+ res.pmName = 'npm';
59
+ }
60
+ }
61
+ // deno and bun support package.json scripts out of the box
62
+ else {
63
+ res.runtimeShorthand = runtime;
64
+ res.pmPath = runtimePath;
65
+ res.pmVersion = version;
66
+ res.pmName = runtime;
67
+ }
68
+ cwdCache.set(cwd, some(res));
69
+ return some(res);
70
+ }
71
+ }
72
+ catch {
73
+ // Ignore errors
74
+ }
75
+ }
76
+ cwdCache.set(cwd, none);
77
+ return none;
78
+ }
79
+ //# sourceMappingURL=javascript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../../src/lib/hooks/runtimes/javascript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Option } from '@sapphire/result';
2
+ import type { Runtime } from '../useCwdProject.js';
3
+ export interface UsePythonRuntimeInput {
4
+ cwd?: string;
5
+ force?: boolean;
6
+ }
7
+ export declare function usePythonRuntime({ cwd, force, }?: UsePythonRuntimeInput): Promise<Option<Runtime>>;
8
+ //# sourceMappingURL=python.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../../../src/lib/hooks/runtimes/python.ts"],"names":[],"mappings":"AAKA,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAwBnD,MAAM,WAAW,qBAAqB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,gBAAgB,CAAC,EACtC,GAAmB,EACnB,KAAa,GACb,GAAE,qBAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAuEvD"}
@@ -0,0 +1,80 @@
1
+ import { access } from 'node:fs/promises';
2
+ import { platform } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import process from 'node:process';
5
+ import { none, some } from '@sapphire/result';
6
+ import { execa } from 'execa';
7
+ import which from 'which';
8
+ const cwdCache = new Map();
9
+ async function getPythonVersion(runtimePath) {
10
+ try {
11
+ const result = await execa(runtimePath, ['-c', '"import platform; print(platform.python_version())"'], {
12
+ shell: true,
13
+ windowsHide: true,
14
+ });
15
+ // No output -> issue or who knows
16
+ if (!result.stdout) {
17
+ return null;
18
+ }
19
+ return result.stdout.trim();
20
+ }
21
+ catch (ex) {
22
+ // const casted = ex as ExecaError;
23
+ return null;
24
+ }
25
+ }
26
+ export async function usePythonRuntime({ cwd = process.cwd(), force = false, } = {}) {
27
+ const cached = cwdCache.get(cwd);
28
+ if (cached && !force) {
29
+ return cached;
30
+ }
31
+ const isWindows = platform() === 'win32';
32
+ const pathParts = isWindows ? ['Scripts', 'python.exe'] : ['bin', 'python3'];
33
+ let fullPythonVenvPath;
34
+ if (process.env.VIRTUAL_ENV) {
35
+ fullPythonVenvPath = join(process.env.VIRTUAL_ENV, ...pathParts);
36
+ }
37
+ else {
38
+ fullPythonVenvPath = join(cwd, '.venv', ...pathParts);
39
+ }
40
+ try {
41
+ await access(fullPythonVenvPath);
42
+ const version = await getPythonVersion(fullPythonVenvPath);
43
+ if (version) {
44
+ cwdCache.set(cwd, some({
45
+ executablePath: fullPythonVenvPath,
46
+ version,
47
+ }));
48
+ return some({
49
+ executablePath: fullPythonVenvPath,
50
+ version,
51
+ });
52
+ }
53
+ }
54
+ catch {
55
+ // Ignore errors
56
+ }
57
+ const fallbacks = ['python3', 'python', ...(isWindows ? ['python3.exe', 'python.exe'] : [])];
58
+ for (const fallback of fallbacks) {
59
+ try {
60
+ const fullPath = await which(fallback);
61
+ const version = await getPythonVersion(fullPath);
62
+ if (version) {
63
+ cwdCache.set(cwd, some({
64
+ executablePath: fullPath,
65
+ version,
66
+ }));
67
+ return some({
68
+ executablePath: fullPath,
69
+ version,
70
+ });
71
+ }
72
+ }
73
+ catch {
74
+ // Continue
75
+ }
76
+ }
77
+ cwdCache.set(cwd, none);
78
+ return none;
79
+ }
80
+ //# sourceMappingURL=python.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python.js","sourceRoot":"","sources":["../../../../src/lib/hooks/runtimes/python.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type Result } from '@sapphire/result';
2
+ export type ActorConfigError = {
3
+ message: string;
4
+ cause?: Error;
5
+ exists: boolean;
6
+ config: Record<string, unknown>;
7
+ };
8
+ export interface ActorConfigResult {
9
+ exists: boolean;
10
+ migrated: boolean;
11
+ config: Record<string, unknown>;
12
+ }
13
+ export interface ActorConfigInput {
14
+ cwd?: string;
15
+ migrateConfig?: boolean;
16
+ warnAboutOldConfig?: boolean;
17
+ }
18
+ export declare const cwdCache: Map<string, ActorConfigResult>;
19
+ export declare function useActorConfig({ cwd, migrateConfig, warnAboutOldConfig }?: ActorConfigInput): Promise<Result<ActorConfigResult, ActorConfigError>>;
20
+ //# sourceMappingURL=useActorConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActorConfig.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks/useActorConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AASxD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,QAAQ,gCAAuC,CAAC;AAE7D,wBAAsB,cAAc,CACnC,EAAE,GAAmB,EAAE,aAAoB,EAAE,kBAAyB,EAAE,GAAE,gBAIzE,GACC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CA8DtD"}
@@ -0,0 +1,175 @@
1
+ import { mkdir, rename, writeFile } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import process from 'node:process';
4
+ import { inspect } from 'node:util';
5
+ import { err, ok } from '@sapphire/result';
6
+ import { ACTOR_SPECIFICATION_VERSION, DEPRECATED_LOCAL_CONFIG_NAME } from '../consts.js';
7
+ import { error, info, warning } from '../outputs.js';
8
+ import { confirmAction } from '../utils/confirm.js';
9
+ import { getJsonFileContent, getLocalConfigPath } from '../utils.js';
10
+ const getDeprecatedLocalConfigPath = (cwd) => join(cwd, DEPRECATED_LOCAL_CONFIG_NAME);
11
+ export const cwdCache = new Map();
12
+ export async function useActorConfig({ cwd = process.cwd(), migrateConfig = true, warnAboutOldConfig = true } = {
13
+ cwd: process.cwd(),
14
+ migrateConfig: true,
15
+ warnAboutOldConfig: true,
16
+ }) {
17
+ const cached = cwdCache.get(cwd);
18
+ if (cached) {
19
+ return ok(cached);
20
+ }
21
+ const newConfigPath = getLocalConfigPath(cwd);
22
+ const deprecatedConfigPath = getDeprecatedLocalConfigPath(cwd);
23
+ let config;
24
+ let deprecatedConfig;
25
+ try {
26
+ config = getJsonFileContent(newConfigPath);
27
+ }
28
+ catch (ex) {
29
+ return err({
30
+ message: `Failed to read local config at path: '${newConfigPath}':`,
31
+ cause: ex,
32
+ exists: false,
33
+ config: {},
34
+ });
35
+ }
36
+ try {
37
+ deprecatedConfig = getJsonFileContent(deprecatedConfigPath);
38
+ }
39
+ catch (ex) {
40
+ return err({
41
+ message: `Failed to read local config at path: '${deprecatedConfigPath}':`,
42
+ cause: ex,
43
+ exists: false,
44
+ config: {},
45
+ });
46
+ }
47
+ // Handle cleanup of deprecated config, we just ignore the deprecated config if both exist
48
+ if (config && deprecatedConfig && warnAboutOldConfig) {
49
+ await handleBothConfigVersionsFound(deprecatedConfigPath);
50
+ }
51
+ if (!config && !deprecatedConfig) {
52
+ cwdCache.set(cwd, { exists: false, migrated: false, config: {} });
53
+ return ok({ exists: false, migrated: false, config: {} });
54
+ }
55
+ let migrated = false;
56
+ if (!config && deprecatedConfig && migrateConfig) {
57
+ const migratedConfig = await handleMigrationFlow(deprecatedConfig, deprecatedConfigPath, newConfigPath);
58
+ if (migratedConfig.isErr()) {
59
+ return err(migratedConfig.unwrapErr());
60
+ }
61
+ config = migratedConfig.unwrap();
62
+ migrated = true;
63
+ }
64
+ cwdCache.set(cwd, { exists: true, migrated, config: config || deprecatedConfig || {} });
65
+ return ok({ exists: true, migrated, config: config || deprecatedConfig || {} });
66
+ }
67
+ async function handleBothConfigVersionsFound(deprecatedConfigPath) {
68
+ const confirmed = await confirmAction({
69
+ type: 'actor config',
70
+ message: `The new version of Apify CLI uses the ".actor/actor.json" instead of the "apify.json" file. Since we have found both files in your Actor directory, "apify.json" will be renamed to "apify.json.deprecated". Going forward, all commands will use ".actor/actor.json". You can read about the differences between the old and the new config at https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md. Do you want to continue?`,
71
+ });
72
+ // If users refuse to migrate, 🤷
73
+ if (!confirmed) {
74
+ warning({
75
+ message: 'The "apify.json" file present in your Actor directory will be ignored, and the new ".actor/actor.json" file will be used instead. Please, either rename or remove the old file.',
76
+ });
77
+ return;
78
+ }
79
+ try {
80
+ await rename(deprecatedConfigPath, `${deprecatedConfigPath}.deprecated`);
81
+ info({
82
+ message: `The "apify.json" file has been renamed to "apify.json.deprecated". The deprecated file is no longer used by the CLI or Apify Console. If you do not need it for some specific purpose, it can be safely deleted.`,
83
+ });
84
+ }
85
+ catch (ex) {
86
+ if (ex instanceof Error) {
87
+ error({
88
+ message: `Failed to rename the deprecated "apify.json" file to "apify.json.deprecated".\n ${ex.message || ex}`,
89
+ });
90
+ }
91
+ else {
92
+ error({
93
+ message: `Failed to rename the deprecated "apify.json" file to "apify.json.deprecated".\n ${inspect(ex, { showHidden: false })}`,
94
+ });
95
+ }
96
+ }
97
+ }
98
+ // Properties from apify.json file that will me migrated to Actor specs in .actor/actor.json
99
+ const MIGRATED_APIFY_JSON_PROPERTIES = ['name', 'version', 'buildTag'];
100
+ async function handleMigrationFlow(deprecatedConfig, deprecatedConfigPath, configPath) {
101
+ let migratedConfig = { ...deprecatedConfig };
102
+ if (typeof migratedConfig.version === 'object') {
103
+ migratedConfig = updateLocalConfigStructure(migratedConfig);
104
+ }
105
+ migratedConfig = {
106
+ actorSpecification: ACTOR_SPECIFICATION_VERSION,
107
+ environmentVariables: deprecatedConfig?.env || undefined,
108
+ ...MIGRATED_APIFY_JSON_PROPERTIES.reduce((acc, prop) => {
109
+ acc[prop] = deprecatedConfig[prop];
110
+ return acc;
111
+ }, {}),
112
+ };
113
+ const confirmed = await confirmAction({
114
+ type: 'actor config',
115
+ message: `The new version of Apify CLI uses the ".actor/actor.json" instead of the "apify.json" file. Your "apify.json" file will be automatically updated to the new format under ".actor/actor.json". The original file will be renamed by adding the ".deprecated" suffix. Do you want to continue?`,
116
+ });
117
+ if (!confirmed) {
118
+ return err({
119
+ message: 'Command can not run with old "apify.json" structure. Either let the CLI auto-update it or follow the guide on https://github.com/apify/apify-cli/blob/master/MIGRATIONS.md and update it manually.',
120
+ exists: true,
121
+ config: migratedConfig,
122
+ });
123
+ }
124
+ // If we fail to write the new config, its an error
125
+ try {
126
+ await mkdir(dirname(configPath), { recursive: true });
127
+ await writeFile(configPath, JSON.stringify(migratedConfig, null, '\t'));
128
+ }
129
+ catch (ex) {
130
+ const casted = ex;
131
+ return err({
132
+ message: `Failed to write the new "actor.json" file to path: '${configPath}'.\n ${casted.message || casted}`,
133
+ exists: true,
134
+ config: migratedConfig,
135
+ });
136
+ }
137
+ // but if we fail to rename the deprecated config, its a warning, cause future runs will ignore it
138
+ try {
139
+ await rename(deprecatedConfigPath, `${deprecatedConfigPath}.deprecated`);
140
+ }
141
+ catch (ex) {
142
+ const casted = ex;
143
+ warning({
144
+ message: `Failed to rename the deprecated "apify.json" file to "apify.json.deprecated".\n ${casted.message || casted}`,
145
+ });
146
+ }
147
+ info({
148
+ message: `The "apify.json" file has been migrated to ".actor/actor.json" and the original file renamed to "apify.json.deprecated". The deprecated file is no longer used by the CLI or Apify Console. If you do not need it for some specific purpose, it can be safely deleted. Do not forget to commit the new file to your Git repository.`,
149
+ });
150
+ return ok(migratedConfig);
151
+ }
152
+ /**
153
+ * Migration for deprecated structure of apify.json to latest.
154
+ */
155
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
+ function updateLocalConfigStructure(localConfig) {
157
+ const updatedLocalConfig = {
158
+ name: localConfig.name,
159
+ template: localConfig.template,
160
+ version: localConfig.version.versionNumber,
161
+ buildTag: localConfig.version.buildTag,
162
+ env: null,
163
+ };
164
+ if (localConfig.version.envVars?.length) {
165
+ const env = {};
166
+ localConfig.version.envVars.forEach((envVar) => {
167
+ if (envVar.name && envVar.value) {
168
+ env[envVar.name] = envVar.value;
169
+ }
170
+ });
171
+ updatedLocalConfig.env = env;
172
+ }
173
+ return updatedLocalConfig;
174
+ }
175
+ //# sourceMappingURL=useActorConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActorConfig.js","sourceRoot":"","sources":["../../../src/lib/hooks/useActorConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type Result } from '@sapphire/result';
2
+ export declare enum ProjectLanguage {
3
+ JavaScript = 0,
4
+ Python = 1,
5
+ Scrapy = 2,
6
+ Unknown = 3,
7
+ StaticEntrypoint = 4
8
+ }
9
+ export interface Runtime {
10
+ executablePath: string;
11
+ version: string;
12
+ pmName?: string;
13
+ pmPath?: string | null;
14
+ pmVersion?: string | null;
15
+ runtimeShorthand?: string;
16
+ }
17
+ export interface Entrypoint {
18
+ path?: string;
19
+ script?: string;
20
+ }
21
+ export interface CwdProject {
22
+ type: ProjectLanguage;
23
+ entrypoint?: Entrypoint;
24
+ runtime?: Runtime;
25
+ }
26
+ export interface CwdProjectError {
27
+ message: string;
28
+ }
29
+ export declare const cwdCache: Map<string, CwdProject>;
30
+ export declare function useCwdProject({ cwd, }?: {
31
+ cwd?: string;
32
+ }): Promise<Result<CwdProject, CwdProjectError>>;
33
+ //# sourceMappingURL=useCwdProject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCwdProject.d.ts","sourceRoot":"","sources":["../../../src/lib/hooks/useCwdProject.ts"],"names":[],"mappings":"AAIA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAMnD,oBAAY,eAAe;IAC1B,UAAU,IAAI;IACd,MAAM,IAAI;IAEV,MAAM,IAAI;IACV,OAAO,IAAI;IAGX,gBAAgB,IAAI;CACpB;AAED,MAAM,WAAW,OAAO;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,yBAAgC,CAAC;AAEtD,wBAAsB,aAAa,CAAC,EACnC,GAAmB,GACnB,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAmFtE"}