@jjrawlins/cdk-diff-pr-github-action 1.9.13 → 1.9.15

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 (70) hide show
  1. package/.jsii +3 -3
  2. package/cdkdiffprgithubaction/jsii/jsii.go +2 -2
  3. package/cdkdiffprgithubaction/version +1 -1
  4. package/lib/CdkDiffIamTemplate.js +2 -2
  5. package/lib/CdkDiffIamTemplateStackSet.js +2 -2
  6. package/lib/CdkDiffStackWorkflow.js +1 -1
  7. package/lib/CdkDriftDetectionWorkflow.js +1 -1
  8. package/lib/CdkDriftIamTemplate.js +2 -2
  9. package/node_modules/@aws-sdk/client-cloudformation/package.json +13 -13
  10. package/node_modules/@aws-sdk/core/package.json +4 -4
  11. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  12. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  13. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  14. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  15. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  16. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  17. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  18. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  19. package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
  20. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentity.js +1 -1
  21. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/CognitoIdentity.d.ts +2 -2
  22. package/node_modules/@aws-sdk/nested-clients/package.json +12 -12
  23. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  24. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  25. package/node_modules/@aws-sdk/xml-builder/dist-cjs/index.js +21 -11
  26. package/node_modules/@aws-sdk/xml-builder/dist-cjs/xml-parser.js +5 -1
  27. package/node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js +8 -1
  28. package/node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js +13 -10
  29. package/node_modules/@aws-sdk/xml-builder/dist-es/xml-parser.js +5 -1
  30. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/CHANGELOG.md +33 -4
  31. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/README.md +8 -7
  32. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js +1 -1
  33. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -1
  34. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
  35. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.d.cts +73 -19
  36. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
  37. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
  38. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
  39. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
  40. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/lib/fxvalidator.min.js.map +1 -1
  41. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/package.json +3 -2
  42. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/fxp.d.ts +73 -19
  43. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/util.js +18 -0
  44. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +12 -2
  45. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +71 -0
  46. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +291 -115
  47. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +1 -1
  48. package/node_modules/@aws-sdk/xml-builder/node_modules/fast-xml-parser/src/xmlparser/node2json.js +65 -14
  49. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  50. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +12 -0
  51. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +5 -0
  52. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +5 -0
  53. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  54. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  55. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  56. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  57. package/node_modules/@smithy/config-resolver/package.json +1 -1
  58. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +2 -2
  59. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts +2 -2
  60. package/node_modules/@smithy/middleware-endpoint/package.json +1 -1
  61. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  62. package/node_modules/@smithy/smithy-client/package.json +2 -2
  63. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  64. package/node_modules/@smithy/util-defaults-mode-node/package.json +3 -3
  65. package/node_modules/strnum/CHANGELOG.md +5 -2
  66. package/node_modules/strnum/package.json +1 -1
  67. package/node_modules/strnum/strnum.js +9 -4
  68. package/node_modules/strnum/tests/strnum_test.js +2 -0
  69. package/node_modules/strnum/tests/temp.js +8 -0
  70. package/package.json +2 -2
@@ -1,35 +1,66 @@
1
1
  'use strict';
2
2
 
3
3
  import XmlNode from './xmlNode.js';
4
+ import { Matcher } from 'path-expression-matcher';
4
5
 
5
6
  const METADATA_SYMBOL = XmlNode.getMetaDataSymbol();
6
7
 
8
+ /**
9
+ * Helper function to strip attribute prefix from attribute map
10
+ * @param {object} attrs - Attributes with prefix (e.g., {"@_class": "code"})
11
+ * @param {string} prefix - Attribute prefix to remove (e.g., "@_")
12
+ * @returns {object} Attributes without prefix (e.g., {"class": "code"})
13
+ */
14
+ function stripAttributePrefix(attrs, prefix) {
15
+ if (!attrs || typeof attrs !== 'object') return {};
16
+ if (!prefix) return attrs;
17
+
18
+ const rawAttrs = {};
19
+ for (const key in attrs) {
20
+ if (key.startsWith(prefix)) {
21
+ const rawName = key.substring(prefix.length);
22
+ rawAttrs[rawName] = attrs[key];
23
+ } else {
24
+ // Attribute without prefix (shouldn't normally happen, but be safe)
25
+ rawAttrs[key] = attrs[key];
26
+ }
27
+ }
28
+ return rawAttrs;
29
+ }
30
+
7
31
  /**
8
32
  *
9
33
  * @param {array} node
10
34
  * @param {any} options
35
+ * @param {Matcher} matcher - Path matcher instance
11
36
  * @returns
12
37
  */
13
- export default function prettify(node, options) {
14
- return compress(node, options);
38
+ export default function prettify(node, options, matcher) {
39
+ return compress(node, options, matcher);
15
40
  }
16
41
 
17
42
  /**
18
43
  *
19
44
  * @param {array} arr
20
45
  * @param {object} options
21
- * @param {string} jPath
46
+ * @param {Matcher} matcher - Path matcher instance
22
47
  * @returns object
23
48
  */
24
- function compress(arr, options, jPath) {
49
+ function compress(arr, options, matcher) {
25
50
  let text;
26
51
  const compressedObj = {}; //This is intended to be a plain object
27
52
  for (let i = 0; i < arr.length; i++) {
28
53
  const tagObj = arr[i];
29
54
  const property = propName(tagObj);
30
- let newJpath = "";
31
- if (jPath === undefined) newJpath = property;
32
- else newJpath = jPath + "." + property;
55
+
56
+ // Push current property to matcher WITH RAW ATTRIBUTES (no prefix)
57
+ if (property !== undefined && property !== options.textNodeName) {
58
+ const rawAttrs = stripAttributePrefix(
59
+ tagObj[":@"] || {},
60
+ options.attributeNamePrefix
61
+ );
62
+ matcher.push(property, rawAttrs);
63
+ }
33
64
 
34
65
  if (property === options.textNodeName) {
35
66
  if (text === undefined) text = tagObj[property];
@@ -38,11 +69,11 @@ function compress(arr, options, jPath) {
38
69
  continue;
39
70
  } else if (tagObj[property]) {
40
71
 
41
- let val = compress(tagObj[property], options, newJpath);
72
+ let val = compress(tagObj[property], options, matcher);
42
73
  const isLeaf = isLeafTag(val, options);
43
74
 
44
75
  if (tagObj[":@"]) {
45
- assignAttributes(val, tagObj[":@"], newJpath, options);
76
+ assignAttributes(val, tagObj[":@"], matcher, options);
46
77
  } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode) {
47
78
  val = val[options.textNodeName];
48
79
  } else if (Object.keys(val).length === 0) {
@@ -63,12 +94,20 @@ function compress(arr, options, jPath) {
63
94
  } else {
64
95
  //TODO: if a node is not an array, then check if it should be an array
65
96
  //also determine if it is a leaf node
66
- if (options.isArray(property, newJpath, isLeaf)) {
97
+
98
+ // Pass jPath string or matcher based on options.jPath setting
99
+ const jPathOrMatcher = options.jPath ? matcher.toString() : matcher;
100
+ if (options.isArray(property, jPathOrMatcher, isLeaf)) {
67
101
  compressedObj[property] = [val];
68
102
  } else {
69
103
  compressedObj[property] = val;
70
104
  }
71
105
  }
106
+
107
+ // Pop property from matcher after processing
108
+ if (property !== undefined && property !== options.textNodeName) {
109
+ matcher.pop();
110
+ }
72
111
  }
73
112
 
74
113
  }
@@ -89,13 +128,25 @@ function propName(obj) {
89
128
  }
90
129
  }
91
130
 
92
- function assignAttributes(obj, attrMap, jpath, options) {
131
+ function assignAttributes(obj, attrMap, matcher, options) {
93
132
  if (attrMap) {
94
133
  const keys = Object.keys(attrMap);
95
134
  const len = keys.length; //don't make it inline
96
135
  for (let i = 0; i < len; i++) {
97
- const atrrName = keys[i];
98
- if (options.isArray(atrrName, jpath + "." + atrrName, true, true)) {
136
+ const atrrName = keys[i]; // This is the PREFIXED name (e.g., "@_class")
137
+
138
+ // Strip prefix for matcher path (for isArray callback)
139
+ const rawAttrName = atrrName.startsWith(options.attributeNamePrefix)
140
+ ? atrrName.substring(options.attributeNamePrefix.length)
141
+ : atrrName;
142
+
143
+ // For attributes, we need to create a temporary path
144
+ // Pass jPath string or matcher based on options.jPath setting
145
+ const jPathOrMatcher = options.jPath
146
+ ? matcher.toString() + "." + rawAttrName
147
+ : matcher;
148
+
149
+ if (options.isArray(atrrName, jPathOrMatcher, true, true)) {
99
150
  obj[atrrName] = [attrMap[atrrName]];
100
151
  } else {
101
152
  obj[atrrName] = attrMap[atrrName];
@@ -120,4 +171,4 @@ function isLeafTag(obj, options) {
120
171
  }
121
172
 
122
173
  return false;
123
- }
174
+ }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@aws-sdk/xml-builder",
3
- "version": "3.972.11",
3
+ "version": "3.972.14",
4
4
  "description": "XML utilities for the AWS SDK",
5
5
  "dependencies": {
6
6
  "@smithy/types": "^4.13.1",
7
- "fast-xml-parser": "5.4.1",
7
+ "fast-xml-parser": "5.5.6",
8
8
  "tslib": "^2.6.2"
9
9
  },
10
10
  "scripts": {
@@ -12,6 +12,11 @@ const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {
12
12
  configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
13
13
  default: false,
14
14
  };
15
+ const nodeDualstackConfigSelectors = {
16
+ environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.ENV),
17
+ configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
18
+ default: undefined,
19
+ };
15
20
 
16
21
  const ENV_USE_FIPS_ENDPOINT = "AWS_USE_FIPS_ENDPOINT";
17
22
  const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
@@ -21,6 +26,11 @@ const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {
21
26
  configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
22
27
  default: false,
23
28
  };
29
+ const nodeFipsConfigSelectors = {
30
+ environmentVariableSelector: (env) => utilConfigProvider.booleanSelector(env, ENV_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.ENV),
31
+ configFileSelector: (profile) => utilConfigProvider.booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, utilConfigProvider.SelectorType.CONFIG),
32
+ default: undefined,
33
+ };
24
34
 
25
35
  const resolveCustomEndpointsConfig = (input) => {
26
36
  const { tls, endpoint, urlParser, useDualstackEndpoint } = input;
@@ -181,6 +191,8 @@ exports.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = NODE_USE_FIPS_ENDPOINT_CONFIG_OP
181
191
  exports.REGION_ENV_NAME = REGION_ENV_NAME;
182
192
  exports.REGION_INI_NAME = REGION_INI_NAME;
183
193
  exports.getRegionInfo = getRegionInfo;
194
+ exports.nodeDualstackConfigSelectors = nodeDualstackConfigSelectors;
195
+ exports.nodeFipsConfigSelectors = nodeFipsConfigSelectors;
184
196
  exports.resolveCustomEndpointsConfig = resolveCustomEndpointsConfig;
185
197
  exports.resolveEndpointsConfig = resolveEndpointsConfig;
186
198
  exports.resolveRegionConfig = resolveRegionConfig;
@@ -7,3 +7,8 @@ export const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {
7
7
  configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),
8
8
  default: false,
9
9
  };
10
+ export const nodeDualstackConfigSelectors = {
11
+ environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),
12
+ configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),
13
+ default: undefined,
14
+ };
@@ -7,3 +7,8 @@ export const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {
7
7
  configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),
8
8
  default: false,
9
9
  };
10
+ export const nodeFipsConfigSelectors = {
11
+ environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),
12
+ configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),
13
+ default: undefined,
14
+ };
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint";
12
12
  */
13
13
  export declare const DEFAULT_USE_DUALSTACK_ENDPOINT = false;
14
14
  /**
15
+ * Don't delete this, used by older clients.
16
+ * @deprecated replaced by nodeDualstackConfigSelectors in newer clients.
15
17
  * @internal
16
18
  */
17
19
  export declare const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
20
+ /**
21
+ * @internal
22
+ */
23
+ export declare const nodeDualstackConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
12
12
  */
13
13
  export declare const DEFAULT_USE_FIPS_ENDPOINT = false;
14
14
  /**
15
+ * Don't delete this, used by older clients.
16
+ * @deprecated replaced by nodeFipsConfigSelectors in newer clients.
15
17
  * @internal
16
18
  */
17
19
  export declare const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
20
+ /**
21
+ * @internal
22
+ */
23
+ export declare const nodeFipsConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_DUALSTACK_ENDPOINT = "use_dualstack_endpoint";
12
12
  */
13
13
  export declare const DEFAULT_USE_DUALSTACK_ENDPOINT = false;
14
14
  /**
15
+ * Don't delete this, used by older clients.
16
+ * @deprecated replaced by nodeDualstackConfigSelectors in newer clients.
15
17
  * @internal
16
18
  */
17
19
  export declare const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
20
+ /**
21
+ * @internal
22
+ */
23
+ export declare const nodeDualstackConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
@@ -12,6 +12,12 @@ export declare const CONFIG_USE_FIPS_ENDPOINT = "use_fips_endpoint";
12
12
  */
13
13
  export declare const DEFAULT_USE_FIPS_ENDPOINT = false;
14
14
  /**
15
+ * Don't delete this, used by older clients.
16
+ * @deprecated replaced by nodeFipsConfigSelectors in newer clients.
15
17
  * @internal
16
18
  */
17
19
  export declare const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS: LoadedConfigSelectors<boolean>;
20
+ /**
21
+ * @internal
22
+ */
23
+ export declare const nodeFipsConfigSelectors: LoadedConfigSelectors<boolean | undefined>;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/config-resolver",
3
- "version": "4.4.11",
3
+ "version": "4.4.13",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline config-resolver",
@@ -31,11 +31,11 @@ export interface EndpointInputConfig<T extends EndpointParameters = EndpointPara
31
31
  /**
32
32
  * Enables IPv6/IPv4 dualstack endpoint.
33
33
  */
34
- useDualstackEndpoint?: boolean | Provider<boolean>;
34
+ useDualstackEndpoint?: boolean | Provider<boolean | undefined>;
35
35
  /**
36
36
  * Enables FIPS compatible endpoints.
37
37
  */
38
- useFipsEndpoint?: boolean | Provider<boolean>;
38
+ useFipsEndpoint?: boolean | Provider<boolean | undefined>;
39
39
  /**
40
40
  * @internal
41
41
  * This field is used internally so you should not fill any value to this field.
@@ -31,11 +31,11 @@ export interface EndpointInputConfig<T extends EndpointParameters = EndpointPara
31
31
  /**
32
32
  * Enables IPv6/IPv4 dualstack endpoint.
33
33
  */
34
- useDualstackEndpoint?: boolean | Provider<boolean>;
34
+ useDualstackEndpoint?: boolean | Provider<boolean | undefined>;
35
35
  /**
36
36
  * Enables FIPS compatible endpoints.
37
37
  */
38
- useFipsEndpoint?: boolean | Provider<boolean>;
38
+ useFipsEndpoint?: boolean | Provider<boolean | undefined>;
39
39
  /**
40
40
  * @internal
41
41
  * This field is used internally so you should not fill any value to this field.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-endpoint",
3
- "version": "4.4.26",
3
+ "version": "4.4.27",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline middleware-endpoint",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-retry",
3
- "version": "4.4.43",
3
+ "version": "4.4.44",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline middleware-retry",
@@ -37,7 +37,7 @@
37
37
  "@smithy/node-config-provider": "^4.3.12",
38
38
  "@smithy/protocol-http": "^5.3.12",
39
39
  "@smithy/service-error-classification": "^4.2.12",
40
- "@smithy/smithy-client": "^4.12.6",
40
+ "@smithy/smithy-client": "^4.12.7",
41
41
  "@smithy/types": "^4.13.1",
42
42
  "@smithy/util-middleware": "^4.2.12",
43
43
  "@smithy/util-retry": "^4.2.12",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/smithy-client",
3
- "version": "4.12.6",
3
+ "version": "4.12.7",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline smithy-client",
@@ -28,7 +28,7 @@
28
28
  "sideEffects": false,
29
29
  "dependencies": {
30
30
  "@smithy/core": "^3.23.12",
31
- "@smithy/middleware-endpoint": "^4.4.26",
31
+ "@smithy/middleware-endpoint": "^4.4.27",
32
32
  "@smithy/middleware-stack": "^4.2.12",
33
33
  "@smithy/protocol-http": "^5.3.12",
34
34
  "@smithy/types": "^4.13.1",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-browser",
3
- "version": "4.3.42",
3
+ "version": "4.3.43",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline util-defaults-mode-browser",
@@ -25,7 +25,7 @@
25
25
  "sideEffects": false,
26
26
  "dependencies": {
27
27
  "@smithy/property-provider": "^4.2.12",
28
- "@smithy/smithy-client": "^4.12.6",
28
+ "@smithy/smithy-client": "^4.12.7",
29
29
  "@smithy/types": "^4.13.1",
30
30
  "tslib": "^2.6.2"
31
31
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-node",
3
- "version": "4.2.45",
3
+ "version": "4.2.47",
4
4
  "scripts": {
5
5
  "build": "concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline util-defaults-mode-node",
@@ -24,11 +24,11 @@
24
24
  "license": "Apache-2.0",
25
25
  "sideEffects": false,
26
26
  "dependencies": {
27
- "@smithy/config-resolver": "^4.4.11",
27
+ "@smithy/config-resolver": "^4.4.13",
28
28
  "@smithy/credential-provider-imds": "^4.2.12",
29
29
  "@smithy/node-config-provider": "^4.3.12",
30
30
  "@smithy/property-provider": "^4.2.12",
31
- "@smithy/smithy-client": "^4.12.6",
31
+ "@smithy/smithy-client": "^4.12.7",
32
32
  "@smithy/types": "^4.13.1",
33
33
  "tslib": "^2.6.2"
34
34
  },
@@ -1,6 +1,9 @@
1
1
 
2
- **2.1.1 / 2025-05-15**
3
- - remove unnecessary check to remove lint error
2
+ **2.2.1 / 2026-03-19**
3
+ - fix false positive for eNotation when no leading zeros
4
+
5
+ **2.2.0 / 2026-02-28**
6
+ - support infinity
4
7
 
5
8
  **2.1.0 / 2025-05-01**
6
9
  - fix e-notation
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strnum",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "Parse String to Number based on configuration",
5
5
  "type": "module",
6
6
  "main": "strnum.js",
@@ -97,11 +97,16 @@ function resolveEnotation(str, trimmedStr, options) {
97
97
  else if (leadingZeros.length === 1
98
98
  && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)) {
99
99
  return Number(trimmedStr);
100
- } else if (options.leadingZeros && !eAdjacentToLeadingZeros) { //accept with leading zeros
101
- //remove leading 0s
102
- trimmedStr = (notation[1] || "") + notation[3];
100
+ } else if (leadingZeros.length > 0) {
101
+ // Has leading zeros — only accept if leadingZeros option allows it
102
+ if (options.leadingZeros && !eAdjacentToLeadingZeros) {
103
+ trimmedStr = (notation[1] || "") + notation[3];
104
+ return Number(trimmedStr);
105
+ } else return str;
106
+ } else {
107
+ // No leading zeros — always valid e-notation, parse it
103
108
  return Number(trimmedStr);
104
- } else return str;
109
+ }
105
110
  } else {
106
111
  return str;
107
112
  }
@@ -126,6 +126,8 @@ describe("Should convert all the valid numeric strings to number", () => {
126
126
  expect(toNumber("1e-2")).toEqual(0.01);
127
127
  expect(toNumber("1e+2")).toEqual(100);
128
128
  expect(toNumber("1.e+2")).toEqual(100);
129
+
130
+ expect(toNumber("1.5e3", { leadingZeros: false })).toEqual(1500);
129
131
  });
130
132
 
131
133
  it("scientific notation with upper E", () => {
@@ -0,0 +1,8 @@
1
+ import toNumber from "../strnum.js";
2
+
3
+ console.log(toNumber("1.5e3", {leadingZeros: false}))
4
+ // describe("temp", () = {
5
+
6
+ // it("scientific notation", () => {
7
+ // });
8
+ // })
package/package.json CHANGED
@@ -69,7 +69,7 @@
69
69
  "constructs": ">=10.0.5 <11.0.0"
70
70
  },
71
71
  "dependencies": {
72
- "@aws-sdk/client-cloudformation": "^3.1011.0",
72
+ "@aws-sdk/client-cloudformation": "^3.1013.0",
73
73
  "@types/crypto-js": "^4.2.2",
74
74
  "@types/js-yaml": "^4.0.9",
75
75
  "crypto-js": "^4.2.0",
@@ -110,7 +110,7 @@
110
110
  "publishConfig": {
111
111
  "access": "public"
112
112
  },
113
- "version": "1.9.13",
113
+ "version": "1.9.15",
114
114
  "jest": {
115
115
  "coverageProvider": "v8",
116
116
  "testMatch": [