@alien_org/contract 0.1.4 → 0.2.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.
- package/dist/index.cjs +20 -10
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +20 -10
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -34,8 +34,24 @@ function getReleaseVersion(method, payload) {
|
|
|
34
34
|
//#endregion
|
|
35
35
|
//#region src/methods/versions/index.ts
|
|
36
36
|
/**
|
|
37
|
+
* Compare two semver versions.
|
|
38
|
+
* @returns negative if a < b, 0 if a === b, positive if a > b
|
|
39
|
+
*/
|
|
40
|
+
function compareVersions(a, b) {
|
|
41
|
+
const [aMajor, aMinor, aPatch] = a.split(".").map(Number);
|
|
42
|
+
const [bMajor, bMinor, bPatch] = b.split(".").map(Number);
|
|
43
|
+
if (aMajor !== bMajor) return (aMajor ?? 0) - (bMajor ?? 0);
|
|
44
|
+
if (aMinor !== bMinor) return (aMinor ?? 0) - (bMinor ?? 0);
|
|
45
|
+
return (aPatch ?? 0) - (bPatch ?? 0);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
37
48
|
* Check if a method is supported in a given version.
|
|
38
49
|
*
|
|
50
|
+
* Uses the minimum version that introduced the method and returns true if
|
|
51
|
+
* the given version is >= that minimum (semver comparison). This supports
|
|
52
|
+
* versions not explicitly listed in releases (e.g. 0.1.4 when method was
|
|
53
|
+
* added in 0.1.1).
|
|
54
|
+
*
|
|
39
55
|
* @param method - The method name to check.
|
|
40
56
|
* @param version - The contract version (must be a valid version string, not undefined).
|
|
41
57
|
* @returns `true` if the method is supported in the given version, `false` otherwise.
|
|
@@ -45,22 +61,16 @@ function getReleaseVersion(method, payload) {
|
|
|
45
61
|
* handled at a higher level before calling this function.
|
|
46
62
|
*/
|
|
47
63
|
function isMethodSupported(method, version) {
|
|
48
|
-
const
|
|
49
|
-
if (!
|
|
50
|
-
return
|
|
64
|
+
const minVersion = getMethodMinVersion(method);
|
|
65
|
+
if (!minVersion) return false;
|
|
66
|
+
return compareVersions(version, minVersion) >= 0;
|
|
51
67
|
}
|
|
52
68
|
/**
|
|
53
69
|
* Get the minimum version that supports a method.
|
|
54
70
|
* Returns undefined if method not found in any version.
|
|
55
71
|
*/
|
|
56
72
|
function getMethodMinVersion(method) {
|
|
57
|
-
const sorted = Object.keys(releases).sort(
|
|
58
|
-
const [aMajor, aMinor, aPatch] = a.split(".").map(Number);
|
|
59
|
-
const [bMajor, bMinor, bPatch] = b.split(".").map(Number);
|
|
60
|
-
if (aMajor !== bMajor) return (aMajor ?? 0) - (bMajor ?? 0);
|
|
61
|
-
if (aMinor !== bMinor) return (aMinor ?? 0) - (bMinor ?? 0);
|
|
62
|
-
return (aPatch ?? 0) - (bPatch ?? 0);
|
|
63
|
-
});
|
|
73
|
+
const sorted = Object.keys(releases).sort(compareVersions);
|
|
64
74
|
for (const version of sorted) {
|
|
65
75
|
const methods = releases[version];
|
|
66
76
|
if (!methods) continue;
|
package/dist/index.d.cts
CHANGED
|
@@ -455,6 +455,11 @@ declare const releases: Record<Version, (MethodName | {
|
|
|
455
455
|
/**
|
|
456
456
|
* Check if a method is supported in a given version.
|
|
457
457
|
*
|
|
458
|
+
* Uses the minimum version that introduced the method and returns true if
|
|
459
|
+
* the given version is >= that minimum (semver comparison). This supports
|
|
460
|
+
* versions not explicitly listed in releases (e.g. 0.1.4 when method was
|
|
461
|
+
* added in 0.1.1).
|
|
462
|
+
*
|
|
458
463
|
* @param method - The method name to check.
|
|
459
464
|
* @param version - The contract version (must be a valid version string, not undefined).
|
|
460
465
|
* @returns `true` if the method is supported in the given version, `false` otherwise.
|
package/dist/index.d.mts
CHANGED
|
@@ -455,6 +455,11 @@ declare const releases: Record<Version, (MethodName | {
|
|
|
455
455
|
/**
|
|
456
456
|
* Check if a method is supported in a given version.
|
|
457
457
|
*
|
|
458
|
+
* Uses the minimum version that introduced the method and returns true if
|
|
459
|
+
* the given version is >= that minimum (semver comparison). This supports
|
|
460
|
+
* versions not explicitly listed in releases (e.g. 0.1.4 when method was
|
|
461
|
+
* added in 0.1.1).
|
|
462
|
+
*
|
|
458
463
|
* @param method - The method name to check.
|
|
459
464
|
* @param version - The contract version (must be a valid version string, not undefined).
|
|
460
465
|
* @returns `true` if the method is supported in the given version, `false` otherwise.
|
package/dist/index.mjs
CHANGED
|
@@ -33,8 +33,24 @@ function getReleaseVersion(method, payload) {
|
|
|
33
33
|
//#endregion
|
|
34
34
|
//#region src/methods/versions/index.ts
|
|
35
35
|
/**
|
|
36
|
+
* Compare two semver versions.
|
|
37
|
+
* @returns negative if a < b, 0 if a === b, positive if a > b
|
|
38
|
+
*/
|
|
39
|
+
function compareVersions(a, b) {
|
|
40
|
+
const [aMajor, aMinor, aPatch] = a.split(".").map(Number);
|
|
41
|
+
const [bMajor, bMinor, bPatch] = b.split(".").map(Number);
|
|
42
|
+
if (aMajor !== bMajor) return (aMajor ?? 0) - (bMajor ?? 0);
|
|
43
|
+
if (aMinor !== bMinor) return (aMinor ?? 0) - (bMinor ?? 0);
|
|
44
|
+
return (aPatch ?? 0) - (bPatch ?? 0);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
36
47
|
* Check if a method is supported in a given version.
|
|
37
48
|
*
|
|
49
|
+
* Uses the minimum version that introduced the method and returns true if
|
|
50
|
+
* the given version is >= that minimum (semver comparison). This supports
|
|
51
|
+
* versions not explicitly listed in releases (e.g. 0.1.4 when method was
|
|
52
|
+
* added in 0.1.1).
|
|
53
|
+
*
|
|
38
54
|
* @param method - The method name to check.
|
|
39
55
|
* @param version - The contract version (must be a valid version string, not undefined).
|
|
40
56
|
* @returns `true` if the method is supported in the given version, `false` otherwise.
|
|
@@ -44,22 +60,16 @@ function getReleaseVersion(method, payload) {
|
|
|
44
60
|
* handled at a higher level before calling this function.
|
|
45
61
|
*/
|
|
46
62
|
function isMethodSupported(method, version) {
|
|
47
|
-
const
|
|
48
|
-
if (!
|
|
49
|
-
return
|
|
63
|
+
const minVersion = getMethodMinVersion(method);
|
|
64
|
+
if (!minVersion) return false;
|
|
65
|
+
return compareVersions(version, minVersion) >= 0;
|
|
50
66
|
}
|
|
51
67
|
/**
|
|
52
68
|
* Get the minimum version that supports a method.
|
|
53
69
|
* Returns undefined if method not found in any version.
|
|
54
70
|
*/
|
|
55
71
|
function getMethodMinVersion(method) {
|
|
56
|
-
const sorted = Object.keys(releases).sort(
|
|
57
|
-
const [aMajor, aMinor, aPatch] = a.split(".").map(Number);
|
|
58
|
-
const [bMajor, bMinor, bPatch] = b.split(".").map(Number);
|
|
59
|
-
if (aMajor !== bMajor) return (aMajor ?? 0) - (bMajor ?? 0);
|
|
60
|
-
if (aMinor !== bMinor) return (aMinor ?? 0) - (bMinor ?? 0);
|
|
61
|
-
return (aPatch ?? 0) - (bPatch ?? 0);
|
|
62
|
-
});
|
|
72
|
+
const sorted = Object.keys(releases).sort(compareVersions);
|
|
63
73
|
for (const version of sorted) {
|
|
64
74
|
const methods = releases[version];
|
|
65
75
|
if (!methods) continue;
|