jsii-pacmak 1.96.0 → 1.97.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.
@@ -81,30 +81,54 @@ function toReleaseVersion(assemblyVersion, target) {
81
81
  }
82
82
  switch (target) {
83
83
  case _1.TargetName.PYTHON:
84
+ const baseVersion = `${version.major}.${version.minor}.${version.patch}`;
84
85
  // Python supports a limited set of identifiers... And we have a mapping table...
85
86
  // https://packaging.python.org/guides/distributing-packages-using-setuptools/#pre-release-versioning
86
- const [label, sequence, ...rest] = version.prerelease;
87
- if (rest.filter((elt) => elt !== 0).length > 0 || sequence == null) {
88
- throw new Error(`Unable to map prerelease identifier (in: ${assemblyVersion}) components to python: ${(0, util_1.inspect)(version.prerelease)}. The format should be 'X.Y.Z-label.sequence', where sequence is a positive integer, and label is "dev", "pre", "alpha", beta", or "rc"`);
89
- }
90
- if (!Number.isInteger(sequence)) {
91
- throw new Error(`Unable to map prerelease identifier (in: ${assemblyVersion}) to python, as sequence ${(0, util_1.inspect)(sequence)} is not an integer`);
92
- }
93
- const baseVersion = `${version.major}.${version.minor}.${version.patch}`;
94
- // See PEP 440: https://www.python.org/dev/peps/pep-0440/#pre-releases
95
- switch (label) {
96
- case 'dev':
97
- case 'pre':
98
- return `${baseVersion}.dev${sequence}`;
99
- case 'alpha':
100
- return `${baseVersion}.a${sequence}`;
101
- case 'beta':
102
- return `${baseVersion}.b${sequence}`;
103
- case 'rc':
104
- return `${baseVersion}.rc${sequence}`;
105
- default:
106
- throw new Error(`Unable to map prerelease identifier (in: ${assemblyVersion}) to python, as label ${(0, util_1.inspect)(label)} is not mapped (only "dev", "pre", "alpha", "beta" and "rc" are)`);
87
+ const releaseLabels = {
88
+ alpha: 'a',
89
+ beta: 'b',
90
+ rc: 'rc',
91
+ post: 'post',
92
+ dev: 'dev',
93
+ pre: 'pre',
94
+ };
95
+ const validationErrors = [];
96
+ // Ensure that prerelease composed entirely of [label, sequence] pairs
97
+ version.prerelease.forEach((elem, idx, arr) => {
98
+ const next = arr[idx + 1];
99
+ if (typeof elem === 'string') {
100
+ if (!Object.keys(releaseLabels).includes(elem)) {
101
+ validationErrors.push(`Label ${elem} is not one of ${Object.keys(releaseLabels).join(',')}`);
102
+ }
103
+ if (next === undefined || !Number.isInteger(next)) {
104
+ validationErrors.push(`Label ${elem} must be followed by a positive integer`);
105
+ }
106
+ }
107
+ });
108
+ if (validationErrors.length > 0) {
109
+ throw new Error(`Unable to map prerelease identifier (in: ${assemblyVersion}) components to python: ${(0, util_1.inspect)(version.prerelease)}. The format should be 'X.Y.Z-[label.sequence][.post.sequence][.(dev|pre).sequence]', where sequence is a positive integer and label is one of ${(0, util_1.inspect)(Object.keys(releaseLabels))}. Validation errors encountered: ${validationErrors.join(', ')}`);
107
110
  }
111
+ // PEP440 supports multiple labels in a given version, so
112
+ // we should attempt to identify and map as many labels as
113
+ // possible from the given prerelease input
114
+ // e.g. 1.2.3-rc.123.dev.456.post.789 => 1.2.3.rc123.dev456.post789
115
+ const postIdx = version.prerelease.findIndex((v) => v.toString() === 'post');
116
+ const devIdx = version.prerelease.findIndex((v) => ['dev', 'pre'].includes(v.toString()));
117
+ const preReleaseIdx = version.prerelease.findIndex((v) => ['alpha', 'beta', 'rc'].includes(v.toString()));
118
+ const prereleaseVersion = [
119
+ preReleaseIdx > -1
120
+ ? `${releaseLabels[version.prerelease[preReleaseIdx]]}${version.prerelease[preReleaseIdx + 1] ?? 0}`
121
+ : undefined,
122
+ postIdx > -1
123
+ ? `post${version.prerelease[postIdx + 1] ?? 0}`
124
+ : undefined,
125
+ devIdx > -1 ? `dev${version.prerelease[devIdx + 1] ?? 0}` : undefined,
126
+ ]
127
+ .filter((v) => v)
128
+ .join('.');
129
+ return version.build.length > 0
130
+ ? `${baseVersion}.${prereleaseVersion}+${version.build.join('.')}`
131
+ : `${baseVersion}.${prereleaseVersion}`;
108
132
  case _1.TargetName.DOTNET:
109
133
  case _1.TargetName.GO:
110
134
  case _1.TargetName.JAVA:
package/lib/version.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** The short version number for this jsii-pacmak release (e.g: `X.Y.Z`) */
2
2
  export declare const VERSION: string;
3
3
  /** The qualified version number for this jsii-pacmak release (e.g: `X.Y.Z (build #######)`) */
4
- export declare const VERSION_DESC = "1.96.0 (build 921e240)";
4
+ export declare const VERSION_DESC = "1.97.0 (build 729de35)";
5
5
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
- // Generated at 2024-03-22T17:45:29Z by generate.sh
2
+ // Generated at 2024-04-08T20:13:17Z by generate.sh
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.VERSION_DESC = exports.VERSION = void 0;
5
5
  /** The short version number for this jsii-pacmak release (e.g: `X.Y.Z`) */
6
6
  // eslint-disable-next-line @typescript-eslint/no-inferrable-types
7
- exports.VERSION = '1.96.0';
7
+ exports.VERSION = '1.97.0';
8
8
  /** The qualified version number for this jsii-pacmak release (e.g: `X.Y.Z (build #######)`) */
9
- exports.VERSION_DESC = '1.96.0 (build 921e240)';
9
+ exports.VERSION_DESC = '1.97.0 (build 729de35)';
10
10
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jsii-pacmak",
3
- "version": "1.96.0",
3
+ "version": "1.97.0",
4
4
  "description": "A code generation framework for jsii backend languages",
5
5
  "license": "Apache-2.0",
6
6
  "author": {
@@ -37,33 +37,33 @@
37
37
  "package": "package-js"
38
38
  },
39
39
  "dependencies": {
40
- "@jsii/check-node": "1.96.0",
41
- "@jsii/spec": "^1.96.0",
40
+ "@jsii/check-node": "1.97.0",
41
+ "@jsii/spec": "^1.97.0",
42
42
  "clone": "^2.1.2",
43
- "codemaker": "^1.96.0",
43
+ "codemaker": "^1.97.0",
44
44
  "commonmark": "^0.30.0",
45
45
  "escape-string-regexp": "^4.0.0",
46
46
  "fs-extra": "^10.1.0",
47
- "jsii-reflect": "^1.96.0",
48
- "jsii-rosetta": "^1.96.0",
47
+ "jsii-reflect": "^1.97.0",
48
+ "jsii-rosetta": "^1.97.0",
49
49
  "semver": "^7.5.4",
50
50
  "spdx-license-list": "^6.8.0",
51
51
  "xmlbuilder": "^15.1.1",
52
52
  "yargs": "^16.2.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@jsii/dotnet-runtime": "^1.96.0",
56
- "@jsii/java-runtime": "^1.96.0",
57
- "@jsii/go-runtime": "^1.96.0",
58
- "@scope/jsii-calc-lib": "^1.96.0",
55
+ "@jsii/dotnet-runtime": "^1.97.0",
56
+ "@jsii/java-runtime": "^1.97.0",
57
+ "@jsii/go-runtime": "^1.97.0",
58
+ "@scope/jsii-calc-lib": "^1.97.0",
59
59
  "@types/clone": "^2.1.4",
60
60
  "@types/diff": "^5.0.8",
61
61
  "@types/commonmark": "^0.27.9",
62
62
  "@types/fs-extra": "^9.0.13",
63
63
  "@types/semver": "^7.5.5",
64
64
  "diff": "^5.1.0",
65
- "jsii": "^1.96.0",
66
- "jsii-build-tools": "^1.96.0",
65
+ "jsii": "^1.97.0",
66
+ "jsii-build-tools": "^1.97.0",
67
67
  "jsii-calc": "^3.20.120",
68
68
  "pyright": "^1.1.332"
69
69
  },