keep-a-changelog 2.0.1 → 2.1.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 (103) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +5 -2
  3. package/esm/_dnt.polyfills.js +15 -0
  4. package/esm/bin.js +5 -4
  5. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/_util/assert.js +0 -0
  6. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/_util/os.js +2 -0
  7. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/flags/mod.js +0 -0
  8. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_constants.js +0 -0
  9. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_interface.js +0 -0
  10. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_util.js +0 -0
  11. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/common.js +0 -0
  12. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/glob.js +0 -0
  13. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/mod.js +0 -0
  14. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/posix.js +3 -0
  15. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/separator.js +0 -0
  16. package/esm/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/win32.js +3 -0
  17. package/esm/deps/{deno_land/std_0.51.0 → deno.land/std@0.51.0}/fs/eol.js +0 -0
  18. package/esm/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/ini.js +1 -1
  19. package/esm/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/mod.js +0 -0
  20. package/esm/deps/{deno_land/x/semver_v1.4.0 → deno.land/x/semver@v1.4.0}/mod.js +0 -0
  21. package/esm/mod.js +1 -0
  22. package/esm/src/Release.js +11 -4
  23. package/esm/src/deps.js +1 -1
  24. package/esm/src/parser.js +5 -2
  25. package/esm/test/changelog.expected.md +3 -3
  26. package/esm/test/changelog.md +3 -3
  27. package/package.json +6 -6
  28. package/script/_dnt.polyfills.js +16 -0
  29. package/script/_dnt.shims.js +66 -0
  30. package/script/bin.js +140 -0
  31. package/script/deps/deno.land/std@0.120.0/_util/assert.js +18 -0
  32. package/script/deps/deno.land/std@0.120.0/_util/os.js +43 -0
  33. package/script/deps/deno.land/std@0.120.0/flags/mod.js +259 -0
  34. package/script/deps/deno.land/std@0.120.0/path/_constants.js +48 -0
  35. package/script/deps/deno.land/std@0.120.0/path/_interface.js +4 -0
  36. package/script/deps/deno.land/std@0.120.0/path/_util.js +124 -0
  37. package/script/deps/deno.land/std@0.120.0/path/common.js +40 -0
  38. package/script/deps/deno.land/std@0.120.0/path/glob.js +391 -0
  39. package/script/deps/deno.land/std@0.120.0/path/mod.js +45 -0
  40. package/script/deps/deno.land/std@0.120.0/path/posix.js +535 -0
  41. package/script/deps/deno.land/std@0.120.0/path/separator.js +8 -0
  42. package/script/deps/deno.land/std@0.120.0/path/win32.js +1005 -0
  43. package/script/deps/deno.land/std@0.51.0/fs/eol.js +34 -0
  44. package/script/deps/deno.land/x/ini@v2.1.0/ini.js +256 -0
  45. package/script/deps/deno.land/x/ini@v2.1.0/mod.js +17 -0
  46. package/script/deps/deno.land/x/semver@v1.4.0/mod.js +1568 -0
  47. package/script/mod.js +15 -0
  48. package/{umd → script}/package.json +0 -0
  49. package/script/src/Change.js +51 -0
  50. package/script/src/Changelog.js +140 -0
  51. package/script/src/Release.js +217 -0
  52. package/script/src/deps.js +9 -0
  53. package/script/src/parser.js +168 -0
  54. package/{umd → script}/test/changelog.custom.type.md +0 -0
  55. package/{umd → script}/test/changelog.expected.md +3 -3
  56. package/{umd → script}/test/changelog.md +3 -3
  57. package/{umd → script}/test/empty.expected.md +0 -0
  58. package/types/_dnt.polyfills.d.ts +11 -0
  59. package/types/_dnt.shims.d.ts +0 -4
  60. package/types/bin.d.ts +1 -1
  61. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/_util/assert.d.ts +0 -0
  62. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/_util/os.d.ts +0 -0
  63. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/flags/mod.d.ts +0 -0
  64. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_constants.d.ts +0 -0
  65. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_interface.d.ts +0 -0
  66. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/_util.d.ts +0 -0
  67. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/common.d.ts +0 -0
  68. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/glob.d.ts +0 -0
  69. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/mod.d.ts +0 -0
  70. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/posix.d.ts +0 -0
  71. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/separator.d.ts +0 -0
  72. package/types/deps/{deno_land/std_0.120.0 → deno.land/std@0.120.0}/path/win32.d.ts +0 -0
  73. package/types/deps/{deno_land/std_0.51.0 → deno.land/std@0.51.0}/fs/eol.d.ts +0 -0
  74. package/types/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/ini.d.ts +0 -0
  75. package/types/deps/{deno_land/x/ini_v2.1.0 → deno.land/x/ini@v2.1.0}/mod.d.ts +0 -0
  76. package/types/deps/{deno_land/x/semver_v1.4.0 → deno.land/x/semver@v1.4.0}/mod.d.ts +0 -0
  77. package/types/mod.d.ts +1 -0
  78. package/types/src/Release.d.ts +1 -0
  79. package/types/src/deps.d.ts +1 -1
  80. package/umd/_dnt.shims.js +0 -76
  81. package/umd/bin.js +0 -145
  82. package/umd/deps/deno_land/std_0.120.0/_util/assert.js +0 -28
  83. package/umd/deps/deno_land/std_0.120.0/_util/os.js +0 -47
  84. package/umd/deps/deno_land/std_0.120.0/flags/mod.js +0 -269
  85. package/umd/deps/deno_land/std_0.120.0/path/_constants.js +0 -58
  86. package/umd/deps/deno_land/std_0.120.0/path/_interface.js +0 -14
  87. package/umd/deps/deno_land/std_0.120.0/path/_util.js +0 -134
  88. package/umd/deps/deno_land/std_0.120.0/path/common.js +0 -50
  89. package/umd/deps/deno_land/std_0.120.0/path/glob.js +0 -397
  90. package/umd/deps/deno_land/std_0.120.0/path/mod.js +0 -51
  91. package/umd/deps/deno_land/std_0.120.0/path/posix.js +0 -538
  92. package/umd/deps/deno_land/std_0.120.0/path/separator.js +0 -18
  93. package/umd/deps/deno_land/std_0.120.0/path/win32.js +0 -1008
  94. package/umd/deps/deno_land/std_0.51.0/fs/eol.js +0 -44
  95. package/umd/deps/deno_land/x/ini_v2.1.0/ini.js +0 -262
  96. package/umd/deps/deno_land/x/ini_v2.1.0/mod.js +0 -23
  97. package/umd/deps/deno_land/x/semver_v1.4.0/mod.js +0 -1578
  98. package/umd/mod.js +0 -24
  99. package/umd/src/Change.js +0 -61
  100. package/umd/src/Changelog.js +0 -150
  101. package/umd/src/Release.js +0 -220
  102. package/umd/src/deps.js +0 -19
  103. package/umd/src/parser.js +0 -175
package/types/mod.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import "./_dnt.polyfills.js";
1
2
  import parser from "./src/parser.js";
2
3
  import Change from "./src/Change.js";
3
4
  import Changelog from "./src/Changelog.js";
@@ -5,6 +5,7 @@ export default class Release {
5
5
  changelog?: Changelog;
6
6
  version?: Semver;
7
7
  date?: Date;
8
+ yanked: boolean;
8
9
  description: string;
9
10
  changes: Map<string, Change[]>;
10
11
  constructor(version?: string | Semver, date?: string | Date, description?: string);
@@ -1 +1 @@
1
- export { default as Semver, eq, } from "../deps/deno_land/x/semver_v1.4.0/mod.js";
1
+ export { default as Semver, eq, } from "../deps/deno.land/x/semver@v1.4.0/mod.js";
package/umd/_dnt.shims.js DELETED
@@ -1,76 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@deno/shim-deno", "@deno/shim-deno"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.dntGlobalThis = exports.Deno = void 0;
13
- const shim_deno_1 = require("@deno/shim-deno");
14
- var shim_deno_2 = require("@deno/shim-deno");
15
- Object.defineProperty(exports, "Deno", { enumerable: true, get: function () { return shim_deno_2.Deno; } });
16
- const dntGlobals = {
17
- Deno: shim_deno_1.Deno,
18
- };
19
- exports.dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
20
- // deno-lint-ignore ban-types
21
- function createMergeProxy(baseObj, extObj) {
22
- return new Proxy(baseObj, {
23
- get(_target, prop, _receiver) {
24
- if (prop in extObj) {
25
- return extObj[prop];
26
- }
27
- else {
28
- return baseObj[prop];
29
- }
30
- },
31
- set(_target, prop, value) {
32
- if (prop in extObj) {
33
- delete extObj[prop];
34
- }
35
- baseObj[prop] = value;
36
- return true;
37
- },
38
- deleteProperty(_target, prop) {
39
- let success = false;
40
- if (prop in extObj) {
41
- delete extObj[prop];
42
- success = true;
43
- }
44
- if (prop in baseObj) {
45
- delete baseObj[prop];
46
- success = true;
47
- }
48
- return success;
49
- },
50
- ownKeys(_target) {
51
- const baseKeys = Reflect.ownKeys(baseObj);
52
- const extKeys = Reflect.ownKeys(extObj);
53
- const extKeysSet = new Set(extKeys);
54
- return [...baseKeys.filter((k) => !extKeysSet.has(k)), ...extKeys];
55
- },
56
- defineProperty(_target, prop, desc) {
57
- if (prop in extObj) {
58
- delete extObj[prop];
59
- }
60
- Reflect.defineProperty(baseObj, prop, desc);
61
- return true;
62
- },
63
- getOwnPropertyDescriptor(_target, prop) {
64
- if (prop in extObj) {
65
- return Reflect.getOwnPropertyDescriptor(extObj, prop);
66
- }
67
- else {
68
- return Reflect.getOwnPropertyDescriptor(baseObj, prop);
69
- }
70
- },
71
- has(_target, prop) {
72
- return prop in extObj || prop in baseObj;
73
- },
74
- });
75
- }
76
- });
package/umd/bin.js DELETED
@@ -1,145 +0,0 @@
1
- #!/usr/bin/env node
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- (function (factory) {
22
- if (typeof module === "object" && typeof module.exports === "object") {
23
- var v = factory(require, exports);
24
- if (v !== undefined) module.exports = v;
25
- }
26
- else if (typeof define === "function" && define.amd) {
27
- define(["require", "exports", "./_dnt.shims.js", "./deps/deno_land/std_0.120.0/path/mod.js", "./mod.js", "./deps/deno_land/std_0.120.0/flags/mod.js", "./deps/deno_land/x/ini_v2.1.0/mod.js"], factory);
28
- }
29
- })(function (require, exports) {
30
- "use strict";
31
- Object.defineProperty(exports, "__esModule", { value: true });
32
- const dntShim = __importStar(require("./_dnt.shims.js"));
33
- const mod_js_1 = require("./deps/deno_land/std_0.120.0/path/mod.js");
34
- const mod_js_2 = require("./mod.js");
35
- const mod_js_3 = require("./deps/deno_land/std_0.120.0/flags/mod.js");
36
- const mod_js_4 = require("./deps/deno_land/x/ini_v2.1.0/mod.js");
37
- const argv = (0, mod_js_3.parse)(dntShim.Deno.args, {
38
- default: {
39
- file: "CHANGELOG.md",
40
- release: null,
41
- url: null,
42
- https: true,
43
- quiet: false,
44
- },
45
- boolean: ["https", "init", "latest-release", "quiet"],
46
- });
47
- const file = (0, mod_js_1.join)(dntShim.Deno.cwd(), argv.file);
48
- try {
49
- if (argv.init) {
50
- const changelog = new mod_js_2.Changelog("Changelog").addRelease(new mod_js_2.Release("0.1.0", new Date(), "First version"));
51
- save(file, changelog, true);
52
- dntShim.Deno.exit(0);
53
- }
54
- const changelog = (0, mod_js_2.parser)(dntShim.Deno.readTextFileSync(file));
55
- if (argv['latest-release']) {
56
- const release = changelog.releases.find((release) => release.date && release.version);
57
- if (release) {
58
- console.log(release.version?.toString());
59
- }
60
- dntShim.Deno.exit(0);
61
- }
62
- if (argv.release) {
63
- const release = changelog.releases.find((release) => {
64
- if (release.date) {
65
- return false;
66
- }
67
- if (typeof argv.release === "string") {
68
- return !release.version || argv.release === release.version.toString();
69
- }
70
- return !!release.version;
71
- });
72
- if (release) {
73
- release.date = new Date();
74
- if (typeof argv.release === "string") {
75
- release.setVersion(argv.release);
76
- }
77
- }
78
- else {
79
- console.error("Not found any valid unreleased version");
80
- dntShim.Deno.exit(1);
81
- }
82
- }
83
- if (!changelog.url) {
84
- if (argv.url) {
85
- changelog.url = argv.url;
86
- }
87
- else {
88
- const url = getRemoteUrl(argv.https);
89
- if (url) {
90
- changelog.url = url;
91
- }
92
- else {
93
- console.error(red('Please, set the repository url with --url="https://github.com/username/repository"'));
94
- dntShim.Deno.exit(1);
95
- }
96
- }
97
- }
98
- save(file, changelog);
99
- }
100
- catch (err) {
101
- console.error(red(err.message));
102
- if (!argv.quiet) {
103
- dntShim.Deno.exit(1);
104
- }
105
- }
106
- function save(file, changelog, isNew = false) {
107
- const url = changelog.url;
108
- if (url && url.includes("gitlab.com")) {
109
- changelog.head = "master";
110
- }
111
- dntShim.Deno.writeTextFileSync(file, changelog.toString());
112
- if (isNew) {
113
- console.log(green("Generated new file"), file);
114
- }
115
- else {
116
- console.log(green("Updated file"), file);
117
- }
118
- }
119
- function red(message) {
120
- return "\u001b[" + 31 + "m" + message + "\u001b[" + 39 + "m";
121
- }
122
- function green(message) {
123
- return "\u001b[" + 32 + "m" + message + "\u001b[" + 39 + "m";
124
- }
125
- function getRemoteUrl(https = true) {
126
- try {
127
- const file = (0, mod_js_1.join)(dntShim.Deno.cwd(), ".git", "config");
128
- const content = dntShim.Deno.readTextFileSync(file);
129
- const data = (0, mod_js_4.parse)(content);
130
- const url = data?.['remote "origin"']?.url;
131
- if (!url) {
132
- return;
133
- }
134
- const remoteUrl = new URL(url.replace(/^git@([^:]+):(.*)\.git$/, "https://$1/$2"));
135
- if (https) {
136
- remoteUrl.protocol = "https:";
137
- }
138
- return remoteUrl.href;
139
- }
140
- catch (err) {
141
- console.error(red(err.message));
142
- // Ignore
143
- }
144
- }
145
- });
@@ -1,28 +0,0 @@
1
- // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
2
- (function (factory) {
3
- if (typeof module === "object" && typeof module.exports === "object") {
4
- var v = factory(require, exports);
5
- if (v !== undefined) module.exports = v;
6
- }
7
- else if (typeof define === "function" && define.amd) {
8
- define(["require", "exports"], factory);
9
- }
10
- })(function (require, exports) {
11
- "use strict";
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.assert = exports.DenoStdInternalError = void 0;
14
- class DenoStdInternalError extends Error {
15
- constructor(message) {
16
- super(message);
17
- this.name = "DenoStdInternalError";
18
- }
19
- }
20
- exports.DenoStdInternalError = DenoStdInternalError;
21
- /** Make an assertion, if not `true`, then throw. */
22
- function assert(expr, msg = "") {
23
- if (!expr) {
24
- throw new DenoStdInternalError(msg);
25
- }
26
- }
27
- exports.assert = assert;
28
- });
@@ -1,47 +0,0 @@
1
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2
- if (k2 === undefined) k2 = k;
3
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
- }) : (function(o, m, k, k2) {
5
- if (k2 === undefined) k2 = k;
6
- o[k2] = m[k];
7
- }));
8
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
9
- Object.defineProperty(o, "default", { enumerable: true, value: v });
10
- }) : function(o, v) {
11
- o["default"] = v;
12
- });
13
- var __importStar = (this && this.__importStar) || function (mod) {
14
- if (mod && mod.__esModule) return mod;
15
- var result = {};
16
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
- __setModuleDefault(result, mod);
18
- return result;
19
- };
20
- (function (factory) {
21
- if (typeof module === "object" && typeof module.exports === "object") {
22
- var v = factory(require, exports);
23
- if (v !== undefined) module.exports = v;
24
- }
25
- else if (typeof define === "function" && define.amd) {
26
- define(["require", "exports", "../../../../_dnt.shims.js"], factory);
27
- }
28
- })(function (require, exports) {
29
- "use strict";
30
- Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.isWindows = exports.osType = void 0;
32
- const dntShim = __importStar(require("../../../../_dnt.shims.js"));
33
- exports.osType = (() => {
34
- // deno-lint-ignore no-explicit-any
35
- const { Deno } = dntShim.dntGlobalThis;
36
- if (typeof Deno?.build?.os === "string") {
37
- return Deno.build.os;
38
- }
39
- // deno-lint-ignore no-explicit-any
40
- const { navigator } = dntShim.dntGlobalThis;
41
- if (navigator?.appVersion?.includes?.("Win") ?? false) {
42
- return "windows";
43
- }
44
- return "linux";
45
- })();
46
- exports.isWindows = exports.osType === "windows";
47
- });
@@ -1,269 +0,0 @@
1
- // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
2
- (function (factory) {
3
- if (typeof module === "object" && typeof module.exports === "object") {
4
- var v = factory(require, exports);
5
- if (v !== undefined) module.exports = v;
6
- }
7
- else if (typeof define === "function" && define.amd) {
8
- define(["require", "exports", "../_util/assert.js"], factory);
9
- }
10
- })(function (require, exports) {
11
- "use strict";
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.parse = void 0;
14
- const assert_js_1 = require("../_util/assert.js");
15
- const { hasOwn } = Object;
16
- function get(obj, key) {
17
- if (hasOwn(obj, key)) {
18
- return obj[key];
19
- }
20
- }
21
- function getForce(obj, key) {
22
- const v = get(obj, key);
23
- (0, assert_js_1.assert)(v != null);
24
- return v;
25
- }
26
- function isNumber(x) {
27
- if (typeof x === "number")
28
- return true;
29
- if (/^0x[0-9a-f]+$/i.test(String(x)))
30
- return true;
31
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(String(x));
32
- }
33
- function hasKey(obj, keys) {
34
- let o = obj;
35
- keys.slice(0, -1).forEach((key) => {
36
- o = (get(o, key) ?? {});
37
- });
38
- const key = keys[keys.length - 1];
39
- return key in o;
40
- }
41
- /** Take a set of command line arguments, with an optional set of options, and
42
- * return an object representation of those argument.
43
- *
44
- * ```ts
45
- * import { parse } from "./mod.ts";
46
- * const parsedArgs = parse(Deno.args);
47
- * ```
48
- */
49
- function parse(args, { "--": doubleDash = false, alias = {}, boolean = false, default: defaults = {}, stopEarly = false, string = [], unknown = (i) => i, } = {}) {
50
- const flags = {
51
- bools: {},
52
- strings: {},
53
- unknownFn: unknown,
54
- allBools: false,
55
- };
56
- if (boolean !== undefined) {
57
- if (typeof boolean === "boolean") {
58
- flags.allBools = !!boolean;
59
- }
60
- else {
61
- const booleanArgs = typeof boolean === "string" ? [boolean] : boolean;
62
- for (const key of booleanArgs.filter(Boolean)) {
63
- flags.bools[key] = true;
64
- }
65
- }
66
- }
67
- const aliases = {};
68
- if (alias !== undefined) {
69
- for (const key in alias) {
70
- const val = getForce(alias, key);
71
- if (typeof val === "string") {
72
- aliases[key] = [val];
73
- }
74
- else {
75
- aliases[key] = val;
76
- }
77
- for (const alias of getForce(aliases, key)) {
78
- aliases[alias] = [key].concat(aliases[key].filter((y) => alias !== y));
79
- }
80
- }
81
- }
82
- if (string !== undefined) {
83
- const stringArgs = typeof string === "string" ? [string] : string;
84
- for (const key of stringArgs.filter(Boolean)) {
85
- flags.strings[key] = true;
86
- const alias = get(aliases, key);
87
- if (alias) {
88
- for (const al of alias) {
89
- flags.strings[al] = true;
90
- }
91
- }
92
- }
93
- }
94
- const argv = { _: [] };
95
- function argDefined(key, arg) {
96
- return ((flags.allBools && /^--[^=]+$/.test(arg)) ||
97
- get(flags.bools, key) ||
98
- !!get(flags.strings, key) ||
99
- !!get(aliases, key));
100
- }
101
- function setKey(obj, keys, value) {
102
- let o = obj;
103
- keys.slice(0, -1).forEach(function (key) {
104
- if (get(o, key) === undefined) {
105
- o[key] = {};
106
- }
107
- o = get(o, key);
108
- });
109
- const key = keys[keys.length - 1];
110
- if (get(o, key) === undefined ||
111
- get(flags.bools, key) ||
112
- typeof get(o, key) === "boolean") {
113
- o[key] = value;
114
- }
115
- else if (Array.isArray(get(o, key))) {
116
- o[key].push(value);
117
- }
118
- else {
119
- o[key] = [get(o, key), value];
120
- }
121
- }
122
- function setArg(key, val, arg = undefined) {
123
- if (arg && flags.unknownFn && !argDefined(key, arg)) {
124
- if (flags.unknownFn(arg, key, val) === false)
125
- return;
126
- }
127
- const value = !get(flags.strings, key) && isNumber(val) ? Number(val) : val;
128
- setKey(argv, key.split("."), value);
129
- const alias = get(aliases, key);
130
- if (alias) {
131
- for (const x of alias) {
132
- setKey(argv, x.split("."), value);
133
- }
134
- }
135
- }
136
- function aliasIsBoolean(key) {
137
- return getForce(aliases, key).some((x) => typeof get(flags.bools, x) === "boolean");
138
- }
139
- for (const key of Object.keys(flags.bools)) {
140
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
141
- }
142
- let notFlags = [];
143
- // all args after "--" are not parsed
144
- if (args.includes("--")) {
145
- notFlags = args.slice(args.indexOf("--") + 1);
146
- args = args.slice(0, args.indexOf("--"));
147
- }
148
- for (let i = 0; i < args.length; i++) {
149
- const arg = args[i];
150
- if (/^--.+=/.test(arg)) {
151
- const m = arg.match(/^--([^=]+)=(.*)$/s);
152
- (0, assert_js_1.assert)(m != null);
153
- const [, key, value] = m;
154
- if (flags.bools[key]) {
155
- const booleanValue = value !== "false";
156
- setArg(key, booleanValue, arg);
157
- }
158
- else {
159
- setArg(key, value, arg);
160
- }
161
- }
162
- else if (/^--no-.+/.test(arg)) {
163
- const m = arg.match(/^--no-(.+)/);
164
- (0, assert_js_1.assert)(m != null);
165
- setArg(m[1], false, arg);
166
- }
167
- else if (/^--.+/.test(arg)) {
168
- const m = arg.match(/^--(.+)/);
169
- (0, assert_js_1.assert)(m != null);
170
- const [, key] = m;
171
- const next = args[i + 1];
172
- if (next !== undefined &&
173
- !/^-/.test(next) &&
174
- !get(flags.bools, key) &&
175
- !flags.allBools &&
176
- (get(aliases, key) ? !aliasIsBoolean(key) : true)) {
177
- setArg(key, next, arg);
178
- i++;
179
- }
180
- else if (/^(true|false)$/.test(next)) {
181
- setArg(key, next === "true", arg);
182
- i++;
183
- }
184
- else {
185
- setArg(key, get(flags.strings, key) ? "" : true, arg);
186
- }
187
- }
188
- else if (/^-[^-]+/.test(arg)) {
189
- const letters = arg.slice(1, -1).split("");
190
- let broken = false;
191
- for (let j = 0; j < letters.length; j++) {
192
- const next = arg.slice(j + 2);
193
- if (next === "-") {
194
- setArg(letters[j], next, arg);
195
- continue;
196
- }
197
- if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
198
- setArg(letters[j], next.split(/=(.+)/)[1], arg);
199
- broken = true;
200
- break;
201
- }
202
- if (/[A-Za-z]/.test(letters[j]) &&
203
- /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
204
- setArg(letters[j], next, arg);
205
- broken = true;
206
- break;
207
- }
208
- if (letters[j + 1] && letters[j + 1].match(/\W/)) {
209
- setArg(letters[j], arg.slice(j + 2), arg);
210
- broken = true;
211
- break;
212
- }
213
- else {
214
- setArg(letters[j], get(flags.strings, letters[j]) ? "" : true, arg);
215
- }
216
- }
217
- const [key] = arg.slice(-1);
218
- if (!broken && key !== "-") {
219
- if (args[i + 1] &&
220
- !/^(-|--)[^-]/.test(args[i + 1]) &&
221
- !get(flags.bools, key) &&
222
- (get(aliases, key) ? !aliasIsBoolean(key) : true)) {
223
- setArg(key, args[i + 1], arg);
224
- i++;
225
- }
226
- else if (args[i + 1] && /^(true|false)$/.test(args[i + 1])) {
227
- setArg(key, args[i + 1] === "true", arg);
228
- i++;
229
- }
230
- else {
231
- setArg(key, get(flags.strings, key) ? "" : true, arg);
232
- }
233
- }
234
- }
235
- else {
236
- if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
237
- argv._.push(flags.strings["_"] ?? !isNumber(arg) ? arg : Number(arg));
238
- }
239
- if (stopEarly) {
240
- argv._.push(...args.slice(i + 1));
241
- break;
242
- }
243
- }
244
- }
245
- for (const key of Object.keys(defaults)) {
246
- if (!hasKey(argv, key.split("."))) {
247
- setKey(argv, key.split("."), defaults[key]);
248
- if (aliases[key]) {
249
- for (const x of aliases[key]) {
250
- setKey(argv, x.split("."), defaults[key]);
251
- }
252
- }
253
- }
254
- }
255
- if (doubleDash) {
256
- argv["--"] = [];
257
- for (const key of notFlags) {
258
- argv["--"].push(key);
259
- }
260
- }
261
- else {
262
- for (const key of notFlags) {
263
- argv._.push(key);
264
- }
265
- }
266
- return argv;
267
- }
268
- exports.parse = parse;
269
- });
@@ -1,58 +0,0 @@
1
- // Copyright the Browserify authors. MIT License.
2
- // Ported from https://github.com/browserify/path-browserify/
3
- // This module is browser compatible.
4
- (function (factory) {
5
- if (typeof module === "object" && typeof module.exports === "object") {
6
- var v = factory(require, exports);
7
- if (v !== undefined) module.exports = v;
8
- }
9
- else if (typeof define === "function" && define.amd) {
10
- define(["require", "exports"], factory);
11
- }
12
- })(function (require, exports) {
13
- "use strict";
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CHAR_9 = exports.CHAR_0 = exports.CHAR_EQUAL = exports.CHAR_AMPERSAND = exports.CHAR_AT = exports.CHAR_GRAVE_ACCENT = exports.CHAR_CIRCUMFLEX_ACCENT = exports.CHAR_SEMICOLON = exports.CHAR_PERCENT = exports.CHAR_SINGLE_QUOTE = exports.CHAR_DOUBLE_QUOTE = exports.CHAR_PLUS = exports.CHAR_HYPHEN_MINUS = exports.CHAR_RIGHT_CURLY_BRACKET = exports.CHAR_LEFT_CURLY_BRACKET = exports.CHAR_RIGHT_ANGLE_BRACKET = exports.CHAR_LEFT_ANGLE_BRACKET = exports.CHAR_RIGHT_SQUARE_BRACKET = exports.CHAR_LEFT_SQUARE_BRACKET = exports.CHAR_ZERO_WIDTH_NOBREAK_SPACE = exports.CHAR_NO_BREAK_SPACE = exports.CHAR_SPACE = exports.CHAR_HASH = exports.CHAR_EXCLAMATION_MARK = exports.CHAR_FORM_FEED = exports.CHAR_TAB = exports.CHAR_CARRIAGE_RETURN = exports.CHAR_LINE_FEED = exports.CHAR_UNDERSCORE = exports.CHAR_QUESTION_MARK = exports.CHAR_COLON = exports.CHAR_VERTICAL_LINE = exports.CHAR_BACKWARD_SLASH = exports.CHAR_FORWARD_SLASH = exports.CHAR_DOT = exports.CHAR_LOWERCASE_Z = exports.CHAR_UPPERCASE_Z = exports.CHAR_LOWERCASE_A = exports.CHAR_UPPERCASE_A = void 0;
16
- // Alphabet chars.
17
- exports.CHAR_UPPERCASE_A = 65; /* A */
18
- exports.CHAR_LOWERCASE_A = 97; /* a */
19
- exports.CHAR_UPPERCASE_Z = 90; /* Z */
20
- exports.CHAR_LOWERCASE_Z = 122; /* z */
21
- // Non-alphabetic chars.
22
- exports.CHAR_DOT = 46; /* . */
23
- exports.CHAR_FORWARD_SLASH = 47; /* / */
24
- exports.CHAR_BACKWARD_SLASH = 92; /* \ */
25
- exports.CHAR_VERTICAL_LINE = 124; /* | */
26
- exports.CHAR_COLON = 58; /* : */
27
- exports.CHAR_QUESTION_MARK = 63; /* ? */
28
- exports.CHAR_UNDERSCORE = 95; /* _ */
29
- exports.CHAR_LINE_FEED = 10; /* \n */
30
- exports.CHAR_CARRIAGE_RETURN = 13; /* \r */
31
- exports.CHAR_TAB = 9; /* \t */
32
- exports.CHAR_FORM_FEED = 12; /* \f */
33
- exports.CHAR_EXCLAMATION_MARK = 33; /* ! */
34
- exports.CHAR_HASH = 35; /* # */
35
- exports.CHAR_SPACE = 32; /* */
36
- exports.CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */
37
- exports.CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */
38
- exports.CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */
39
- exports.CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */
40
- exports.CHAR_LEFT_ANGLE_BRACKET = 60; /* < */
41
- exports.CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */
42
- exports.CHAR_LEFT_CURLY_BRACKET = 123; /* { */
43
- exports.CHAR_RIGHT_CURLY_BRACKET = 125; /* } */
44
- exports.CHAR_HYPHEN_MINUS = 45; /* - */
45
- exports.CHAR_PLUS = 43; /* + */
46
- exports.CHAR_DOUBLE_QUOTE = 34; /* " */
47
- exports.CHAR_SINGLE_QUOTE = 39; /* ' */
48
- exports.CHAR_PERCENT = 37; /* % */
49
- exports.CHAR_SEMICOLON = 59; /* ; */
50
- exports.CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */
51
- exports.CHAR_GRAVE_ACCENT = 96; /* ` */
52
- exports.CHAR_AT = 64; /* @ */
53
- exports.CHAR_AMPERSAND = 38; /* & */
54
- exports.CHAR_EQUAL = 61; /* = */
55
- // Digits
56
- exports.CHAR_0 = 48; /* 0 */
57
- exports.CHAR_9 = 57; /* 9 */
58
- });