github-action-readme-generator 1.5.1 → 1.7.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 (74) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.example.md +2 -0
  3. package/README.md +24 -38
  4. package/dist/bin/index.js +320846 -0
  5. package/dist/mjs/Action.d.ts +33 -0
  6. package/dist/mjs/Action.js +51 -0
  7. package/dist/mjs/Action.js.map +1 -0
  8. package/dist/mjs/config.d.ts +30 -0
  9. package/dist/mjs/config.js +56 -0
  10. package/dist/mjs/config.js.map +1 -0
  11. package/dist/mjs/generate-docs.d.ts +3 -0
  12. package/dist/mjs/generate-docs.js +21 -0
  13. package/dist/mjs/generate-docs.js.map +1 -0
  14. package/dist/mjs/helpers.d.ts +17 -0
  15. package/dist/mjs/helpers.js +187 -0
  16. package/dist/mjs/helpers.js.map +1 -0
  17. package/dist/mjs/index.d.ts +2 -0
  18. package/dist/mjs/index.js +4 -0
  19. package/dist/mjs/index.js.map +1 -0
  20. package/dist/mjs/inputs.d.ts +18 -0
  21. package/dist/mjs/inputs.js +252 -0
  22. package/dist/mjs/inputs.js.map +1 -0
  23. package/dist/mjs/inputs.test.d.ts +2 -0
  24. package/dist/mjs/inputs.test.js +8 -0
  25. package/dist/mjs/inputs.test.js.map +1 -0
  26. package/dist/mjs/logtask/index.d.ts +20 -0
  27. package/dist/mjs/logtask/index.js +181 -0
  28. package/dist/mjs/logtask/index.js.map +1 -0
  29. package/dist/mjs/markdowner/index.d.ts +17 -0
  30. package/dist/mjs/markdowner/index.js +104 -0
  31. package/dist/mjs/markdowner/index.js.map +1 -0
  32. package/dist/mjs/package.json +3 -0
  33. package/dist/mjs/prettier.d.ts +3 -0
  34. package/dist/mjs/prettier.js +32 -0
  35. package/dist/mjs/prettier.js.map +1 -0
  36. package/dist/mjs/readme-editor.d.ts +10 -0
  37. package/dist/mjs/readme-editor.js +42 -0
  38. package/dist/mjs/readme-editor.js.map +1 -0
  39. package/dist/mjs/save.d.ts +2 -0
  40. package/dist/mjs/save.js +10 -0
  41. package/dist/mjs/save.js.map +1 -0
  42. package/dist/mjs/sections/index.d.ts +2 -0
  43. package/dist/mjs/sections/index.js +48 -0
  44. package/dist/mjs/sections/index.js.map +1 -0
  45. package/dist/mjs/sections/update-badges.d.ts +7 -0
  46. package/dist/mjs/sections/update-badges.js +71 -0
  47. package/dist/mjs/sections/update-badges.js.map +1 -0
  48. package/dist/mjs/sections/update-branding.d.ts +7 -0
  49. package/dist/mjs/sections/update-branding.js +46 -0
  50. package/dist/mjs/sections/update-branding.js.map +1 -0
  51. package/dist/mjs/sections/update-description.d.ts +2 -0
  52. package/dist/mjs/sections/update-description.js +21 -0
  53. package/dist/mjs/sections/update-description.js.map +1 -0
  54. package/dist/mjs/sections/update-inputs.d.ts +2 -0
  55. package/dist/mjs/sections/update-inputs.js +47 -0
  56. package/dist/mjs/sections/update-inputs.js.map +1 -0
  57. package/dist/mjs/sections/update-outputs.d.ts +2 -0
  58. package/dist/mjs/sections/update-outputs.js +42 -0
  59. package/dist/mjs/sections/update-outputs.js.map +1 -0
  60. package/dist/mjs/sections/update-title.d.ts +2 -0
  61. package/dist/mjs/sections/update-title.js +19 -0
  62. package/dist/mjs/sections/update-title.js.map +1 -0
  63. package/dist/mjs/sections/update-usage.d.ts +2 -0
  64. package/dist/mjs/sections/update-usage.js +49 -0
  65. package/dist/mjs/sections/update-usage.js.map +1 -0
  66. package/dist/mjs/svg-editor.d.mts +22 -0
  67. package/dist/mjs/svg-editor.mjs +138 -0
  68. package/dist/mjs/svg-editor.mjs.map +1 -0
  69. package/dist/mjs/working-directory.d.ts +2 -0
  70. package/dist/mjs/working-directory.js +5 -0
  71. package/dist/mjs/working-directory.js.map +1 -0
  72. package/dist/{index.d.ts → types/index.d.ts} +104 -49
  73. package/package.json +115 -134
  74. package/dist/index.js +0 -16
@@ -0,0 +1,33 @@
1
+ export interface InputType {
2
+ description?: string;
3
+ required?: boolean;
4
+ default?: string;
5
+ }
6
+ export interface OutputType {
7
+ description?: string;
8
+ }
9
+ export interface Runs {
10
+ using: string;
11
+ main: string;
12
+ }
13
+ export interface Branding {
14
+ color: string;
15
+ icon: string;
16
+ }
17
+ export type InputsType = {
18
+ [id: string]: InputType;
19
+ };
20
+ export type OutputsType = {
21
+ [id: string]: OutputType;
22
+ };
23
+ export default class Action {
24
+ name: string;
25
+ description: string;
26
+ branding: Branding;
27
+ inputs: InputsType;
28
+ outputs: OutputsType;
29
+ runs: Runs;
30
+ constructor(actionPath: string);
31
+ inputDefault(inputName: string): string | undefined;
32
+ stringify(): string;
33
+ }
@@ -0,0 +1,51 @@
1
+ /* eslint-disable import/no-extraneous-dependencies */
2
+ /* eslint-disable @typescript-eslint/explicit-member-accessibility */
3
+ import * as fs from 'node:fs';
4
+ import YAML from 'yaml';
5
+ import LogTask from './logtask/index.js';
6
+ export default class Action {
7
+ // Load the action.yml
8
+ name;
9
+ description;
10
+ branding;
11
+ inputs;
12
+ outputs;
13
+ runs;
14
+ constructor(actionPath) {
15
+ const log = new LogTask('action');
16
+ let tmpActionYaml = null;
17
+ try {
18
+ log.debug(`loading action.yml from ${actionPath}`);
19
+ const actionString = fs.readFileSync(actionPath, 'utf8');
20
+ tmpActionYaml = YAML.parse(actionString);
21
+ log.success('loaded configuration successfully');
22
+ }
23
+ catch {
24
+ log.error(`failed to load ${actionPath}`);
25
+ }
26
+ if (typeof tmpActionYaml !== 'object' || tmpActionYaml === null) {
27
+ log.error("action.yml file read in isn't an object (no yaml in it)");
28
+ }
29
+ const actionYaml = tmpActionYaml;
30
+ this.name = actionYaml.name;
31
+ this.description = actionYaml.description;
32
+ this.branding = actionYaml.branding;
33
+ this.inputs = actionYaml.inputs;
34
+ this.outputs = actionYaml.outputs;
35
+ this.runs = actionYaml.runs;
36
+ }
37
+ inputDefault(inputName) {
38
+ return this.inputs[inputName]?.default;
39
+ }
40
+ stringify() {
41
+ try {
42
+ return YAML.stringify(this);
43
+ }
44
+ catch {
45
+ const log = new LogTask('action:stringify');
46
+ log.error('failed to stringify action.yml');
47
+ return '';
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=Action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/Action.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,qEAAqE;AACrE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAqBzC,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,sBAAsB;IAEf,IAAI,CAAS;IAEb,WAAW,CAAS;IAEpB,QAAQ,CAAW;IAEnB,MAAM,CAAa;IAEnB,OAAO,CAAc;IAErB,IAAI,CAAO;IAElB,YAAY,UAAkB;QAC5B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI;YACF,GAAG,CAAC,KAAK,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACzD,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAW,CAAC;YACnD,GAAG,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;SAClD;QAAC,MAAM;YACN,GAAG,CAAC,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;SAC3C;QACD,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE;YAC/D,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;SACtE;QACD,MAAM,UAAU,GAAG,aAAuB,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IACzC,CAAC;IAED,SAAS;QACP,IAAI;YACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC7B;QAAC,MAAM;YACN,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC5C,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CACF","sourcesContent":["/* eslint-disable import/no-extraneous-dependencies */\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\nimport * as fs from 'node:fs';\n\nimport YAML from 'yaml';\n\nimport LogTask from './logtask/index.js';\n\nexport interface InputType {\n description?: string;\n required?: boolean;\n default?: string;\n}\nexport interface OutputType {\n description?: string;\n}\nexport interface Runs {\n using: string;\n main: string;\n}\nexport interface Branding {\n color: string;\n icon: string;\n}\nexport type InputsType = { [id: string]: InputType };\nexport type OutputsType = { [id: string]: OutputType };\n\nexport default class Action {\n // Load the action.yml\n\n public name: string;\n\n public description: string;\n\n public branding: Branding;\n\n public inputs: InputsType;\n\n public outputs: OutputsType;\n\n public runs: Runs;\n\n constructor(actionPath: string) {\n const log = new LogTask('action');\n let tmpActionYaml = null;\n try {\n log.debug(`loading action.yml from ${actionPath}`);\n const actionString = fs.readFileSync(actionPath, 'utf8');\n tmpActionYaml = YAML.parse(actionString) as Action;\n log.success('loaded configuration successfully');\n } catch {\n log.error(`failed to load ${actionPath}`);\n }\n if (typeof tmpActionYaml !== 'object' || tmpActionYaml === null) {\n log.error(\"action.yml file read in isn't an object (no yaml in it)\");\n }\n const actionYaml = tmpActionYaml as Action;\n this.name = actionYaml.name;\n this.description = actionYaml.description;\n this.branding = actionYaml.branding;\n this.inputs = actionYaml.inputs;\n this.outputs = actionYaml.outputs;\n this.runs = actionYaml.runs;\n }\n\n inputDefault(inputName: string): string | undefined {\n return this.inputs[inputName]?.default;\n }\n\n stringify(): string {\n try {\n return YAML.stringify(this);\n } catch {\n const log = new LogTask('action:stringify');\n log.error('failed to stringify action.yml');\n return '';\n }\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ import type Inputs from './inputs.js';
2
+ export interface Versioning {
3
+ enabled?: boolean;
4
+ prefix?: string;
5
+ override?: string;
6
+ branch?: string;
7
+ }
8
+ export interface Paths {
9
+ action: string;
10
+ readme: string;
11
+ }
12
+ export declare class GHActionDocsConfig {
13
+ owner?: string;
14
+ repo?: string;
15
+ title_prefix?: string;
16
+ title?: string;
17
+ paths?: Paths;
18
+ branding_svg_path?: string;
19
+ versioning?: Versioning;
20
+ readmePath?: string;
21
+ outpath?: string;
22
+ pretty?: boolean;
23
+ loadInputs(inputs: Inputs): void;
24
+ /**
25
+ *
26
+ * @param configPath {string}
27
+ * @description Saves the config to a file,if the file exists it will be overwritten.
28
+ */
29
+ save(configPath: string): void;
30
+ }
@@ -0,0 +1,56 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import LogTask from './logtask/index.js';
4
+ export class GHActionDocsConfig {
5
+ owner;
6
+ repo;
7
+ title_prefix;
8
+ title;
9
+ paths;
10
+ branding_svg_path;
11
+ versioning;
12
+ readmePath;
13
+ outpath;
14
+ pretty;
15
+ loadInputs(inputs) {
16
+ this.owner = inputs.config.get('owner');
17
+ this.repo = inputs.config.get('repo');
18
+ this.title_prefix = inputs.config.get('title_prefix');
19
+ this.title = inputs.config.get('title');
20
+ this.paths = inputs.config.get('paths');
21
+ this.branding_svg_path = inputs.config.get('branding_svg_path');
22
+ this.versioning = {
23
+ enabled: inputs.config.get('versioning:enabled'),
24
+ prefix: inputs.config.get('versioning:prefix'),
25
+ override: inputs.config.get('versioning:override'),
26
+ branch: inputs.config.get('versioning:branch'),
27
+ };
28
+ this.outpath = inputs.config.get('outpath');
29
+ this.pretty = inputs.config.get('pretty');
30
+ }
31
+ /**
32
+ *
33
+ * @param configPath {string}
34
+ * @description Saves the config to a file,if the file exists it will be overwritten.
35
+ */
36
+ save(configPath) {
37
+ const log = new LogTask('config:save');
38
+ // validate that that the directory exists
39
+ const directory = path.dirname(configPath);
40
+ // make the directory if it doesn't exist
41
+ fs.mkdir(directory, { recursive: true }, (err) => {
42
+ if (err) {
43
+ log.error(`Error creating directory: ${directory}. Error: ${err}`);
44
+ }
45
+ });
46
+ return fs.writeFile(configPath, JSON.stringify(this, null, 2), (err) => {
47
+ if (err) {
48
+ log.error(`Error writing config file: ${configPath}. Error: ${err}`);
49
+ }
50
+ else {
51
+ log.info(`Config file written to: ${configPath}`);
52
+ }
53
+ });
54
+ }
55
+ }
56
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,OAAO,MAAM,oBAAoB,CAAC;AAYzC,MAAM,OAAO,kBAAkB;IAC7B,KAAK,CAAU;IAEf,IAAI,CAAU;IAEd,YAAY,CAAU;IAEtB,KAAK,CAAU;IAEf,KAAK,CAAS;IAEd,iBAAiB,CAAU;IAE3B,UAAU,CAAc;IAExB,UAAU,CAAU;IAEpB,OAAO,CAAU;IAEjB,MAAM,CAAW;IAEjB,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAW,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAW,CAAC;QAChE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAW,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAU,CAAC;QACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAW,CAAC;QAC1E,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAY;YAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAW;YACxD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAW;YAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAW;SACzD,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAW,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAY,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,UAAkB;QACrB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;QACvC,0CAA0C;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,yCAAyC;QACzC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/C,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,KAAK,CAAC,6BAA6B,SAAS,YAAY,GAAG,EAAE,CAAC,CAAC;aACpE;QACH,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACrE,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,KAAK,CAAC,8BAA8B,UAAU,YAAY,GAAG,EAAE,CAAC,CAAC;aACtE;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;aACnD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\nimport type Inputs from './inputs.js';\nimport LogTask from './logtask/index.js';\n\nexport interface Versioning {\n enabled?: boolean;\n prefix?: string;\n override?: string;\n branch?: string;\n}\nexport interface Paths {\n action: string;\n readme: string;\n}\nexport class GHActionDocsConfig {\n owner?: string;\n\n repo?: string;\n\n title_prefix?: string;\n\n title?: string;\n\n paths?: Paths;\n\n branding_svg_path?: string;\n\n versioning?: Versioning;\n\n readmePath?: string;\n\n outpath?: string;\n\n pretty?: boolean;\n\n loadInputs(inputs: Inputs): void {\n this.owner = inputs.config.get('owner') as string;\n this.repo = inputs.config.get('repo') as string;\n this.title_prefix = inputs.config.get('title_prefix') as string;\n this.title = inputs.config.get('title') as string;\n this.paths = inputs.config.get('paths') as Paths;\n this.branding_svg_path = inputs.config.get('branding_svg_path') as string;\n this.versioning = {\n enabled: inputs.config.get('versioning:enabled') as boolean,\n prefix: inputs.config.get('versioning:prefix') as string,\n override: inputs.config.get('versioning:override') as string,\n branch: inputs.config.get('versioning:branch') as string,\n };\n this.outpath = inputs.config.get('outpath') as string;\n this.pretty = inputs.config.get('pretty') as boolean;\n }\n\n /**\n *\n * @param configPath {string}\n * @description Saves the config to a file,if the file exists it will be overwritten.\n */\n save(configPath: string): void {\n const log = new LogTask('config:save');\n // validate that that the directory exists\n const directory = path.dirname(configPath);\n // make the directory if it doesn't exist\n fs.mkdir(directory, { recursive: true }, (err) => {\n if (err) {\n log.error(`Error creating directory: ${directory}. Error: ${err}`);\n }\n });\n return fs.writeFile(configPath, JSON.stringify(this, null, 2), (err) => {\n if (err) {\n log.error(`Error writing config file: ${configPath}. Error: ${err}`);\n } else {\n log.info(`Config file written to: ${configPath}`);\n }\n });\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import Inputs from './inputs.js';
2
+ export declare const inputs: Inputs;
3
+ export declare function generateDocs(): void;
@@ -0,0 +1,21 @@
1
+ import Inputs from './inputs.js';
2
+ import LogTask from './logtask/index.js';
3
+ import save from './save.js';
4
+ import updateSection from './sections/index.js';
5
+ export const inputs = new Inputs();
6
+ // This script rebuilds the usage section in the README.md to be consistent with the action.yml
7
+ export function generateDocs() {
8
+ const log = new LogTask('generating readme');
9
+ for (const section of inputs.sections) {
10
+ try {
11
+ updateSection(section, inputs);
12
+ }
13
+ catch (error) {
14
+ if (error && 'message' in error && error.message)
15
+ return log.fail(`Error occured in section ${section}. ${error.message}`);
16
+ }
17
+ }
18
+ inputs.readmeEditor.dumpToFile();
19
+ save(inputs);
20
+ }
21
+ //# sourceMappingURL=generate-docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-docs.js","sourceRoot":"","sources":["../../src/generate-docs.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;AACnC,+FAA+F;AAC/F,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;QACrC,IAAI;YACF,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAChC;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO;gBAC9C,OAAO,GAAG,CAAC,IAAI,CAAC,4BAA4B,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SAC5E;KACF;IACD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,CAAC,CAAC;AACf,CAAC","sourcesContent":["import Inputs from './inputs.js';\nimport LogTask from './logtask/index.js';\nimport save from './save.js';\nimport updateSection from './sections/index.js';\n\nexport const inputs = new Inputs();\n// This script rebuilds the usage section in the README.md to be consistent with the action.yml\nexport function generateDocs(): void {\n const log = new LogTask('generating readme');\n for (const section of inputs.sections) {\n try {\n updateSection(section, inputs);\n } catch (error: any) {\n if (error && 'message' in error && error.message)\n return log.fail(`Error occured in section ${section}. ${error.message}`);\n }\n }\n inputs.readmeEditor.dumpToFile();\n\n save(inputs);\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Context } from '@actions/github/lib/context.js';
2
+ import type Inputs from './inputs.js';
3
+ export declare function undefinedOnEmpty(value: string | undefined): string | undefined;
4
+ export declare function basename(path: string): string | undefined;
5
+ export declare function stripRefs(path: string): string | null;
6
+ export declare function titlecase(text: string): string | undefined;
7
+ export declare function prefixParser(text: string | undefined): string | undefined;
8
+ export declare function wrapText(text: string | undefined, content: string[], prepend?: string): string[];
9
+ export interface Repo {
10
+ owner: string;
11
+ repo: string;
12
+ }
13
+ export declare function repositoryFinder(inputRepo: string | undefined | null, context: Context | undefined | null): Repo | null;
14
+ export declare function git_default_branch(): string;
15
+ export declare function columnHeader(value: string): string;
16
+ export declare function rowHeader(value: string): string;
17
+ export declare function getCurrentVersionString(inputs: Inputs): string;
@@ -0,0 +1,187 @@
1
+ import * as fs from 'node:fs';
2
+ import LogTask from './logtask/index.js';
3
+ //
4
+ // Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result
5
+ // can be achieved by using /[0-9\p{L}]\S*/gu and also known as Unicode Property Escapes
6
+ // (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no
7
+ // transpilation of this functionality down to ES5 without external tool, the only solution is
8
+ // to use already transpiled form. Example can be found here -
9
+ // https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1
10
+ //
11
+ const unicodeWordMatch =
12
+ // trunk-ignore(eslint/unicorn/better-regex,eslint/unicorn/no-hex-escape,eslint/optimize-regex/optimize-regex)
13
+ /(?:[\dA-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g;
14
+ export function undefinedOnEmpty(value) {
15
+ if (!value || value === '') {
16
+ return undefined;
17
+ }
18
+ return value;
19
+ }
20
+ export function basename(path) {
21
+ if (!path)
22
+ return undefined;
23
+ const log = new LogTask('basename');
24
+ const result = path.split('/').reverse()[0];
25
+ log.debug(`Basename passed ${path} and returns ${result}`);
26
+ return result;
27
+ }
28
+ export function stripRefs(path) {
29
+ if (!path)
30
+ return null;
31
+ const log = new LogTask('stripRefs');
32
+ const result = path.replace('refs/heads/', '').replace('refs/tags/', '');
33
+ log.debug(`stripRefs passed ${path} and returns ${result}`);
34
+ return result;
35
+ }
36
+ export function titlecase(text) {
37
+ if (!text)
38
+ return undefined;
39
+ if (typeof text !== 'string') {
40
+ throw new TypeError(`Invalid argument type provided to titlecase(): ${typeof text}`);
41
+ }
42
+ return text.replaceAll(unicodeWordMatch, (txt) => txt[0] ? txt[0].toUpperCase() + txt.slice(1).toLowerCase() : txt);
43
+ }
44
+ export function prefixParser(text) {
45
+ if (!text)
46
+ return undefined;
47
+ if (typeof text !== 'string') {
48
+ throw new TypeError(`Invalid argument type provided to prefixParser(): ${typeof text}`);
49
+ }
50
+ return titlecase(text.replace(/[_-]+/, ' '));
51
+ }
52
+ export function wrapText(text, content, prepend = '') {
53
+ // Constrain the width of the description
54
+ if (!text)
55
+ return content;
56
+ const width = 80;
57
+ let description = text
58
+ .trim()
59
+ .replaceAll('\r\n', '\n') // Convert CR to LF
60
+ .replaceAll(/ +/g, ' ') // Squash consecutive spaces
61
+ .replaceAll(' \n', '\n'); // Squash space followed by newline
62
+ while (description) {
63
+ // Longer than width? Find a space to break apart
64
+ let segment;
65
+ if (description.length > width) {
66
+ segment = description.slice(0, Math.max(0, width + 1));
67
+ while (!segment.endsWith(' ') && !segment.endsWith('\n') && segment) {
68
+ segment = segment.slice(0, Math.max(0, segment.length - 1));
69
+ }
70
+ // Trimmed too much?
71
+ if (segment.length < width * 0.67) {
72
+ segment = description;
73
+ }
74
+ }
75
+ else {
76
+ segment = description;
77
+ }
78
+ // Check for newline
79
+ const newlineIndex = segment.indexOf('\n');
80
+ if (newlineIndex >= 0) {
81
+ segment = segment.slice(0, Math.max(0, newlineIndex + 1));
82
+ }
83
+ content.push(`${prepend}${segment}`.trimEnd());
84
+ // Remaining
85
+ description = description.slice(segment.length);
86
+ }
87
+ return content;
88
+ }
89
+ export function repositoryFinder(inputRepo, context) {
90
+ const log = new LogTask('repositoryFinder');
91
+ const obj = {};
92
+ const result = obj;
93
+ if (inputRepo) {
94
+ [result.owner, result.repo] = inputRepo.split('/');
95
+ log.info(`repositoryFinder using input ${inputRepo} and returns ${JSON.stringify(result)}`);
96
+ return result;
97
+ }
98
+ if (process.env.GITHUB_REPOSITORY) {
99
+ [result.owner, result.repo] = process.env.GITHUB_REPOSITORY.split('/');
100
+ log.info(`repositoryFinder using GITHUB_REPOSITORY ${process.env.GITHUB_REPOSITORY} and returns ${JSON.stringify(result)}`);
101
+ return result;
102
+ }
103
+ if (context) {
104
+ result.owner = context.repo.owner;
105
+ result.repo = context.repo.repo;
106
+ log.info(`repositoryFinder using GITHUB_REPOSITORY ${process.env.GITHUB_REPOSITORY} and returns ${JSON.stringify(result)}`);
107
+ return result;
108
+ }
109
+ if (process.env.INPUT_OWNER && process.env.INPUT_REPO) {
110
+ result.owner = process.env.INPUT_OWNER;
111
+ result.repo = process.env.INPUT_REPO;
112
+ return result;
113
+ }
114
+ try {
115
+ const fileContent = fs.readFileSync('.git/config', 'utf8');
116
+ const pattern = /url( )?=( )?.*github\.com[/:](?<owner>.*)\/(?<repo>.*)\.git/;
117
+ const results = fileContent.match(pattern);
118
+ if (results !== null) {
119
+ log.debug(JSON.stringify(results.groups));
120
+ result.owner = results.groups?.owner ?? '';
121
+ result.repo = results.groups?.repo ?? '';
122
+ }
123
+ return result;
124
+ }
125
+ catch (error) {
126
+ // can't find it
127
+ log.debug(`Couldn't find any owner or repo: ${error}`);
128
+ }
129
+ return result;
130
+ }
131
+ export function git_default_branch() {
132
+ // git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'
133
+ return '';
134
+ }
135
+ export function columnHeader(value) {
136
+ if (!value) {
137
+ return '';
138
+ }
139
+ const normalisedHeader = titlecase(value
140
+ .trim()
141
+ .replace(/^[*_~]+/, '')
142
+ .replace(/[*_~]+$/, ''));
143
+ if (normalisedHeader) {
144
+ return `**${normalisedHeader}**`;
145
+ }
146
+ return '';
147
+ }
148
+ export function rowHeader(value) {
149
+ if (!value) {
150
+ return '';
151
+ }
152
+ const normalisedHeader = value.trim().replace(/^\*+/, '').replace(/\*+$/, '');
153
+ return `\`**${normalisedHeader}**\``;
154
+ }
155
+ export function getCurrentVersionString(inputs) {
156
+ let versionString = '';
157
+ const log = new LogTask('getCurrentVersionString');
158
+ if (inputs.config.get('versioning:enabled')) {
159
+ log.debug('version string in generated example is enabled');
160
+ const oRide = inputs.config.get('versioning:override');
161
+ let packageVersion = process.env.npm_package_version;
162
+ log.debug(`version string in env:npm_package_version is ${packageVersion ?? 'not found'}`);
163
+ if (!packageVersion) {
164
+ log.debug('version string in env:npm_package_version is not found, trying to use git');
165
+ try {
166
+ fs.accessSync('package.json');
167
+ const packageData = JSON.parse(fs.readFileSync('package.json', 'utf8'));
168
+ packageVersion = packageData.version;
169
+ }
170
+ catch (error) {
171
+ log.debug(`package.json not found. ${error}`);
172
+ }
173
+ log.debug(`version string in package.json:version is ${packageVersion ?? 'not found'}`);
174
+ }
175
+ versionString = oRide && oRide.length > 0 ? oRide : packageVersion ?? '0.0.0';
176
+ if (versionString &&
177
+ !versionString.startsWith(inputs.config.get('versioning:prefix'))) {
178
+ versionString = `${inputs.config.get('versioning:prefix')}${versionString}`;
179
+ }
180
+ }
181
+ else {
182
+ versionString = inputs.config.get('versioning:branch');
183
+ }
184
+ log.debug(`version to use in generated example is ${versionString}`);
185
+ return versionString;
186
+ }
187
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from 'node:fs';\n\nimport type { Context } from '@actions/github/lib/context.js';\nimport type { PackageJson } from 'types-package-json';\n\nimport type Inputs from './inputs.js';\nimport LogTask from './logtask/index.js';\n\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\n\nconst unicodeWordMatch =\n // trunk-ignore(eslint/unicorn/better-regex,eslint/unicorn/no-hex-escape,eslint/optimize-regex/optimize-regex)\n /(?:[\\dA-Za-z\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n\nexport function undefinedOnEmpty(value: string | undefined): string | undefined {\n if (!value || value === '') {\n return undefined;\n }\n return value;\n}\nexport function basename(path: string): string | undefined {\n if (!path) return undefined;\n const log = new LogTask('basename');\n const result = path.split('/').reverse()[0];\n log.debug(`Basename passed ${path} and returns ${result}`);\n return result;\n}\n\nexport function stripRefs(path: string): string | null {\n if (!path) return null;\n const log = new LogTask('stripRefs');\n const result = path.replace('refs/heads/', '').replace('refs/tags/', '');\n log.debug(`stripRefs passed ${path} and returns ${result}`);\n return result;\n}\nexport function titlecase(text: string): string | undefined {\n if (!text) return undefined;\n if (typeof text !== 'string') {\n throw new TypeError(`Invalid argument type provided to titlecase(): ${typeof text}`);\n }\n return text.replaceAll(unicodeWordMatch, (txt) =>\n txt[0] ? txt[0].toUpperCase() + txt.slice(1).toLowerCase() : txt,\n );\n}\nexport function prefixParser(text: string | undefined): string | undefined {\n if (!text) return undefined;\n if (typeof text !== 'string') {\n throw new TypeError(`Invalid argument type provided to prefixParser(): ${typeof text}`);\n }\n return titlecase(text.replace(/[_-]+/, ' '));\n}\n\nexport function wrapText(text: string | undefined, content: string[], prepend = ''): string[] {\n // Constrain the width of the description\n if (!text) return content;\n const width = 80;\n\n let description = text\n .trim()\n .replaceAll('\\r\\n', '\\n') // Convert CR to LF\n .replaceAll(/ +/g, ' ') // Squash consecutive spaces\n .replaceAll(' \\n', '\\n'); // Squash space followed by newline\n\n while (description) {\n // Longer than width? Find a space to break apart\n let segment: string;\n if (description.length > width) {\n segment = description.slice(0, Math.max(0, width + 1));\n while (!segment.endsWith(' ') && !segment.endsWith('\\n') && segment) {\n segment = segment.slice(0, Math.max(0, segment.length - 1));\n }\n\n // Trimmed too much?\n if (segment.length < width * 0.67) {\n segment = description;\n }\n } else {\n segment = description;\n }\n\n // Check for newline\n const newlineIndex = segment.indexOf('\\n');\n if (newlineIndex >= 0) {\n segment = segment.slice(0, Math.max(0, newlineIndex + 1));\n }\n content.push(`${prepend}${segment}`.trimEnd());\n // Remaining\n description = description.slice(segment.length);\n }\n return content;\n}\nexport interface Repo {\n owner: string;\n repo: string;\n}\n\nexport function repositoryFinder(\n inputRepo: string | undefined | null,\n context: Context | undefined | null,\n): Repo | null {\n const log = new LogTask('repositoryFinder');\n const obj = {} as unknown;\n const result = obj as Repo;\n if (inputRepo) {\n [result.owner, result.repo] = inputRepo.split('/') as [string, string];\n log.info(`repositoryFinder using input ${inputRepo} and returns ${JSON.stringify(result)}`);\n return result;\n }\n if (process.env.GITHUB_REPOSITORY) {\n [result.owner, result.repo] = process.env.GITHUB_REPOSITORY.split('/') as [string, string];\n log.info(\n `repositoryFinder using GITHUB_REPOSITORY ${\n process.env.GITHUB_REPOSITORY\n } and returns ${JSON.stringify(result)}`,\n );\n return result;\n }\n if (context) {\n result.owner = context.repo.owner;\n result.repo = context.repo.repo;\n\n log.info(\n `repositoryFinder using GITHUB_REPOSITORY ${\n process.env.GITHUB_REPOSITORY\n } and returns ${JSON.stringify(result)}`,\n );\n return result;\n }\n if (process.env.INPUT_OWNER && process.env.INPUT_REPO) {\n result.owner = process.env.INPUT_OWNER;\n result.repo = process.env.INPUT_REPO;\n return result;\n }\n try {\n const fileContent = fs.readFileSync('.git/config', 'utf8');\n const pattern = /url( )?=( )?.*github\\.com[/:](?<owner>.*)\\/(?<repo>.*)\\.git/;\n\n interface OwnerRepoInterface extends RegExpExecArray {\n groups?: {\n [key: string]: string;\n owner: string;\n repo: string;\n };\n }\n\n const results = fileContent.match(pattern) as OwnerRepoInterface;\n if (results !== null) {\n log.debug(JSON.stringify(results.groups));\n result.owner = results.groups?.owner ?? '';\n result.repo = results.groups?.repo ?? '';\n }\n return result;\n } catch (error) {\n // can't find it\n log.debug(`Couldn't find any owner or repo: ${error}`);\n }\n return result;\n}\n\nexport function git_default_branch(): string {\n // git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'\n return '';\n}\n\nexport function columnHeader(value: string): string {\n if (!value) {\n return '';\n }\n const normalisedHeader = titlecase(\n value\n .trim()\n .replace(/^[*_~]+/, '')\n .replace(/[*_~]+$/, ''),\n );\n if (normalisedHeader) {\n return `**${normalisedHeader}**`;\n }\n return '';\n}\nexport function rowHeader(value: string): string {\n if (!value) {\n return '';\n }\n const normalisedHeader = value.trim().replace(/^\\*+/, '').replace(/\\*+$/, '');\n return `\\`**${normalisedHeader}**\\``;\n}\n\nexport function getCurrentVersionString(inputs: Inputs): string {\n let versionString = '';\n const log = new LogTask('getCurrentVersionString');\n if (inputs.config.get('versioning:enabled')) {\n log.debug('version string in generated example is enabled');\n const oRide = inputs.config.get('versioning:override') as string;\n let packageVersion = process.env.npm_package_version;\n log.debug(`version string in env:npm_package_version is ${packageVersion ?? 'not found'}`);\n if (!packageVersion) {\n log.debug('version string in env:npm_package_version is not found, trying to use git');\n try {\n fs.accessSync('package.json');\n const packageData: Partial<PackageJson> = JSON.parse(\n fs.readFileSync('package.json', 'utf8'),\n );\n packageVersion = packageData.version;\n } catch (error) {\n log.debug(`package.json not found. ${error}`);\n }\n log.debug(`version string in package.json:version is ${packageVersion ?? 'not found'}`);\n }\n\n versionString = oRide && oRide.length > 0 ? oRide : packageVersion ?? '0.0.0';\n\n if (\n versionString &&\n !versionString.startsWith(inputs.config.get('versioning:prefix') as string)\n ) {\n versionString = `${inputs.config.get('versioning:prefix') as string}${versionString}`;\n }\n } else {\n versionString = inputs.config.get('versioning:branch') as string;\n }\n log.debug(`version to use in generated example is ${versionString}`);\n return versionString;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { generateDocs } from './generate-docs.js';
3
+ generateDocs();
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,YAAY,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\nimport { generateDocs } from './generate-docs.js';\n\ngenerateDocs();\n"]}
@@ -0,0 +1,18 @@
1
+ import Action from './Action.js';
2
+ import { Provider } from './nconf/nconf.cjs';
3
+ import ReadmeEditor from './readme-editor.js';
4
+ export declare const configFileName = ".ghadocs.json";
5
+ export declare const configKeys: string[];
6
+ type ProviderInstance = InstanceType<typeof Provider>;
7
+ export default class Inputs {
8
+ config: ProviderInstance;
9
+ sections: string[];
10
+ readmePath: string;
11
+ configPath: string;
12
+ action: Action;
13
+ readmeEditor: ReadmeEditor;
14
+ constructor();
15
+ setConfigValueFromActionFileDefault(actionInstance: Action, inputName: string, providedConfigName?: string): void;
16
+ stringify(): string;
17
+ }
18
+ export {};