@jjrawlins/cdk-ami-builder 0.0.136 → 0.0.138

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 (115) hide show
  1. package/.jsii +12 -12
  2. package/cdkamibuilder/go.mod +1 -1
  3. package/cdkamibuilder/jsii/jsii.go +2 -2
  4. package/cdkamibuilder/version +1 -1
  5. package/lib/ImagePipeline/ImagePipeline.js +1 -1
  6. package/lib/Lambdas/CheckStateMachineStatus/CheckStateMachineStatus-function.js +1 -1
  7. package/lib/Lambdas/StartStateMachine/StartStateMachine-function.js +1 -1
  8. package/node_modules/@aws-sdk/client-ec2/dist-cjs/index.js +44 -14
  9. package/node_modules/@aws-sdk/client-ec2/dist-es/schemas/schemas_0.js +43 -14
  10. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/AttachVolumeCommand.d.ts +2 -0
  11. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CopyVolumesCommand.d.ts +1 -0
  12. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CreateImageCommand.d.ts +1 -0
  13. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CreateLaunchTemplateCommand.d.ts +1 -0
  14. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CreateLaunchTemplateVersionCommand.d.ts +2 -0
  15. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/CreateVolumeCommand.d.ts +1 -0
  16. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeImageAttributeCommand.d.ts +1 -0
  17. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeImagesCommand.d.ts +1 -0
  18. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeInstanceAttributeCommand.d.ts +1 -0
  19. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeInstanceTypesCommand.d.ts +12 -0
  20. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeInstancesCommand.d.ts +1 -0
  21. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeLaunchTemplateVersionsCommand.d.ts +1 -0
  22. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeSpotFleetRequestsCommand.d.ts +1 -0
  23. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeSpotInstanceRequestsCommand.d.ts +1 -0
  24. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DescribeVolumesCommand.d.ts +1 -0
  25. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/DetachVolumeCommand.d.ts +1 -0
  26. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetInstanceUefiDataCommand.d.ts +2 -1
  27. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/GetLaunchTemplateDataCommand.d.ts +1 -0
  28. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/RegisterImageCommand.d.ts +1 -0
  29. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/RequestSpotFleetCommand.d.ts +1 -0
  30. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/RequestSpotInstancesCommand.d.ts +2 -0
  31. package/node_modules/@aws-sdk/client-ec2/dist-types/commands/RunInstancesCommand.d.ts +2 -0
  32. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_0.d.ts +10 -0
  33. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_1.d.ts +15 -0
  34. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_3.d.ts +5 -0
  35. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_4.d.ts +51 -21
  36. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_5.d.ts +22 -16
  37. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_6.d.ts +15 -41
  38. package/node_modules/@aws-sdk/client-ec2/dist-types/models/models_7.d.ts +42 -1
  39. package/node_modules/@aws-sdk/client-ec2/dist-types/schemas/schemas_0.d.ts +1 -0
  40. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/commands/GetInstanceUefiDataCommand.d.ts +2 -4
  41. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_0.d.ts +2 -0
  42. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_1.d.ts +3 -0
  43. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_3.d.ts +1 -0
  44. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_4.d.ts +11 -5
  45. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_5.d.ts +5 -5
  46. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_6.d.ts +4 -9
  47. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/models/models_7.d.ts +9 -1
  48. package/node_modules/@aws-sdk/client-ec2/dist-types/ts3.4/schemas/schemas_0.d.ts +1 -0
  49. package/node_modules/@aws-sdk/client-ec2/package.json +15 -15
  50. package/node_modules/@aws-sdk/client-ecs/package.json +14 -14
  51. package/node_modules/@aws-sdk/client-kms/package.json +14 -14
  52. package/node_modules/@aws-sdk/client-s3/package.json +22 -22
  53. package/node_modules/@aws-sdk/client-secrets-manager/package.json +14 -14
  54. package/node_modules/@aws-sdk/client-sfn/package.json +14 -14
  55. package/node_modules/@aws-sdk/client-sns/package.json +14 -14
  56. package/node_modules/@aws-sdk/client-sqs/package.json +15 -15
  57. package/node_modules/@aws-sdk/client-ssm/package.json +14 -14
  58. package/node_modules/@aws-sdk/client-sso/package.json +13 -13
  59. package/node_modules/@aws-sdk/core/package.json +7 -7
  60. package/node_modules/@aws-sdk/crc64-nvme/package.json +3 -3
  61. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  62. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  63. package/node_modules/@aws-sdk/credential-provider-ini/package.json +12 -12
  64. package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
  65. package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
  66. package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
  67. package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
  68. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
  69. package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +5 -5
  70. package/node_modules/@aws-sdk/middleware-expect-continue/package.json +4 -4
  71. package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +6 -6
  72. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  73. package/node_modules/@aws-sdk/middleware-location-constraint/package.json +4 -4
  74. package/node_modules/@aws-sdk/middleware-logger/package.json +4 -4
  75. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  76. package/node_modules/@aws-sdk/middleware-sdk-ec2/package.json +5 -5
  77. package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +6 -6
  78. package/node_modules/@aws-sdk/middleware-sdk-sqs/package.json +4 -4
  79. package/node_modules/@aws-sdk/middleware-ssec/package.json +4 -4
  80. package/node_modules/@aws-sdk/middleware-user-agent/package.json +6 -6
  81. package/node_modules/@aws-sdk/nested-clients/package.json +13 -13
  82. package/node_modules/@aws-sdk/region-config-resolver/package.json +4 -4
  83. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +5 -5
  84. package/node_modules/@aws-sdk/token-providers/package.json +6 -6
  85. package/node_modules/@aws-sdk/types/package.json +3 -3
  86. package/node_modules/@aws-sdk/util-arn-parser/package.json +3 -3
  87. package/node_modules/@aws-sdk/util-endpoints/package.json +4 -4
  88. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  89. package/node_modules/@aws-sdk/util-locate-window/package.json +3 -3
  90. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +4 -4
  91. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  92. package/node_modules/@aws-sdk/xml-builder/package.json +3 -3
  93. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +3 -1
  94. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +16 -6
  95. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +3 -1
  96. package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +16 -6
  97. package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +0 -1
  98. package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +0 -1
  99. package/node_modules/@smithy/core/package.json +1 -1
  100. package/node_modules/@smithy/middleware-endpoint/package.json +2 -2
  101. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  102. package/node_modules/@smithy/smithy-client/package.json +3 -3
  103. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  104. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  105. package/node_modules/lodash/README.md +2 -2
  106. package/node_modules/lodash/_baseUnset.js +47 -2
  107. package/node_modules/lodash/core.js +1 -1
  108. package/node_modules/lodash/core.min.js +1 -1
  109. package/node_modules/lodash/lodash.js +43 -4
  110. package/node_modules/lodash/lodash.min.js +57 -57
  111. package/node_modules/lodash/package.json +1 -1
  112. package/package.json +12 -12
  113. package/node_modules/lodash/flake.lock +0 -40
  114. package/node_modules/lodash/flake.nix +0 -20
  115. package/node_modules/lodash/release.md +0 -48
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-sdk/xml-builder",
3
- "version": "3.969.0",
3
+ "version": "3.972.0",
4
4
  "description": "XML builder for the AWS SDK",
5
5
  "dependencies": {
6
6
  "@smithy/types": "^4.12.0",
@@ -14,7 +14,7 @@
14
14
  "build:include:deps": "yarn g:turbo run build -F=\"$npm_package_name\"",
15
15
  "build:types": "tsc -p tsconfig.types.json",
16
16
  "build:types:downlevel": "downlevel-dts dist-types dist-types/ts3.4",
17
- "clean": "rimraf ./dist-* && rimraf *.tsbuildinfo",
17
+ "clean": "premove dist-cjs dist-es dist-types tsconfig.cjs.tsbuildinfo tsconfig.es.tsbuildinfo tsconfig.types.tsbuildinfo",
18
18
  "test": "yarn g:vitest run",
19
19
  "test:watch": "yarn g:vitest watch"
20
20
  },
@@ -57,7 +57,7 @@
57
57
  "@tsconfig/recommended": "1.0.1",
58
58
  "concurrently": "7.0.0",
59
59
  "downlevel-dts": "0.10.1",
60
- "rimraf": "5.0.10",
60
+ "premove": "4.0.0",
61
61
  "typescript": "~5.8.3"
62
62
  }
63
63
  }
@@ -194,7 +194,9 @@ class HttpBindingProtocol extends HttpProtocol {
194
194
  const inputMemberValue = input[memberName];
195
195
  if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {
196
196
  if (memberTraits.httpLabel) {
197
- throw new Error(`No value provided for input HTTP label: ${memberName}.`);
197
+ if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {
198
+ throw new Error(`No value provided for input HTTP label: ${memberName}.`);
199
+ }
198
200
  }
199
201
  continue;
200
202
  }
@@ -240,6 +240,9 @@ function translateTraits(indicator) {
240
240
  return traits;
241
241
  }
242
242
 
243
+ const anno = {
244
+ it: Symbol.for("@smithy/nor-struct-it"),
245
+ };
243
246
  class NormalizedSchema {
244
247
  ref;
245
248
  memberName;
@@ -395,10 +398,7 @@ class NormalizedSchema {
395
398
  return !!streaming || this.getSchema() === 42;
396
399
  }
397
400
  isIdempotencyToken() {
398
- const match = (traits) => (traits & 0b0100) === 0b0100 ||
399
- !!traits?.idempotencyToken;
400
- const { normalizedTraits, traits, memberTraits } = this;
401
- return match(normalizedTraits) || match(traits) || match(memberTraits);
401
+ return !!this.getMergedTraits().idempotencyToken;
402
402
  }
403
403
  getMergedTraits() {
404
404
  return (this.normalizedTraits ??
@@ -479,9 +479,19 @@ class NormalizedSchema {
479
479
  throw new Error("@smithy/core/schema - cannot iterate non-struct schema.");
480
480
  }
481
481
  const struct = this.getSchema();
482
- for (let i = 0; i < struct[4].length; ++i) {
483
- yield [struct[4][i], member([struct[5][i], 0], struct[4][i])];
482
+ const z = struct[4].length;
483
+ let it = struct[anno.it];
484
+ if (it && z === it.length) {
485
+ yield* it;
486
+ return;
487
+ }
488
+ it = Array(z);
489
+ for (let i = 0; i < z; ++i) {
490
+ const k = struct[4][i];
491
+ const v = member([struct[5][i], 0], k);
492
+ yield (it[i] = [k, v]);
484
493
  }
494
+ struct[anno.it] = it;
485
495
  }
486
496
  }
487
497
  function member(memberSchema, memberName) {
@@ -50,7 +50,9 @@ export class HttpBindingProtocol extends HttpProtocol {
50
50
  const inputMemberValue = input[memberName];
51
51
  if (inputMemberValue == null && !memberNs.isIdempotencyToken()) {
52
52
  if (memberTraits.httpLabel) {
53
- throw new Error(`No value provided for input HTTP label: ${memberName}.`);
53
+ if (request.path.includes(`{${memberName}+}`) || request.path.includes(`{${memberName}}`)) {
54
+ throw new Error(`No value provided for input HTTP label: ${memberName}.`);
55
+ }
54
56
  }
55
57
  continue;
56
58
  }
@@ -1,5 +1,8 @@
1
1
  import { deref } from "../deref";
2
2
  import { translateTraits } from "./translateTraits";
3
+ const anno = {
4
+ it: Symbol.for("@smithy/nor-struct-it"),
5
+ };
3
6
  export class NormalizedSchema {
4
7
  ref;
5
8
  memberName;
@@ -155,10 +158,7 @@ export class NormalizedSchema {
155
158
  return !!streaming || this.getSchema() === 42;
156
159
  }
157
160
  isIdempotencyToken() {
158
- const match = (traits) => (traits & 0b0100) === 0b0100 ||
159
- !!traits?.idempotencyToken;
160
- const { normalizedTraits, traits, memberTraits } = this;
161
- return match(normalizedTraits) || match(traits) || match(memberTraits);
161
+ return !!this.getMergedTraits().idempotencyToken;
162
162
  }
163
163
  getMergedTraits() {
164
164
  return (this.normalizedTraits ??
@@ -239,9 +239,19 @@ export class NormalizedSchema {
239
239
  throw new Error("@smithy/core/schema - cannot iterate non-struct schema.");
240
240
  }
241
241
  const struct = this.getSchema();
242
- for (let i = 0; i < struct[4].length; ++i) {
243
- yield [struct[4][i], member([struct[5][i], 0], struct[4][i])];
242
+ const z = struct[4].length;
243
+ let it = struct[anno.it];
244
+ if (it && z === it.length) {
245
+ yield* it;
246
+ return;
247
+ }
248
+ it = Array(z);
249
+ for (let i = 0; i < z; ++i) {
250
+ const k = struct[4][i];
251
+ const v = member([struct[5][i], 0], k);
252
+ yield (it[i] = [k, v]);
244
253
  }
254
+ struct[anno.it] = it;
245
255
  }
246
256
  }
247
257
  function member(memberSchema, memberName) {
@@ -63,7 +63,6 @@ export declare class NormalizedSchema implements INormalizedSchema {
63
63
  isBigDecimalSchema(): boolean;
64
64
  isStreaming(): boolean;
65
65
  /**
66
- * This is a shortcut to avoid calling `getMergedTraits().idempotencyToken` on every string.
67
66
  * @returns whether the schema has the idempotencyToken trait.
68
67
  */
69
68
  isIdempotencyToken(): boolean;
@@ -63,7 +63,6 @@ export declare class NormalizedSchema implements INormalizedSchema {
63
63
  isBigDecimalSchema(): boolean;
64
64
  isStreaming(): boolean;
65
65
  /**
66
- * This is a shortcut to avoid calling `getMergedTraits().idempotencyToken` on every string.
67
66
  * @returns whether the schema has the idempotencyToken trait.
68
67
  */
69
68
  isIdempotencyToken(): boolean;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/core",
3
- "version": "3.20.7",
3
+ "version": "3.21.0",
4
4
  "scripts": {
5
5
  "build": "yarn lint && concurrently 'yarn:build:cjs' 'yarn:build:es' 'yarn:build:types && yarn build:types:downlevel'",
6
6
  "build:cjs": "node ../../scripts/inline core",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-endpoint",
3
- "version": "4.4.8",
3
+ "version": "4.4.10",
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",
@@ -25,7 +25,7 @@
25
25
  "license": "Apache-2.0",
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
- "@smithy/core": "^3.20.7",
28
+ "@smithy/core": "^3.21.0",
29
29
  "@smithy/middleware-serde": "^4.2.9",
30
30
  "@smithy/node-config-provider": "^4.3.8",
31
31
  "@smithy/shared-ini-file-loader": "^4.4.3",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/middleware-retry",
3
- "version": "4.4.24",
3
+ "version": "4.4.26",
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.8",
38
38
  "@smithy/protocol-http": "^5.3.8",
39
39
  "@smithy/service-error-classification": "^4.2.8",
40
- "@smithy/smithy-client": "^4.10.9",
40
+ "@smithy/smithy-client": "^4.10.11",
41
41
  "@smithy/types": "^4.12.0",
42
42
  "@smithy/util-middleware": "^4.2.8",
43
43
  "@smithy/util-retry": "^4.2.8",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/smithy-client",
3
- "version": "4.10.9",
3
+ "version": "4.10.11",
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",
@@ -25,8 +25,8 @@
25
25
  "license": "Apache-2.0",
26
26
  "sideEffects": false,
27
27
  "dependencies": {
28
- "@smithy/core": "^3.20.7",
29
- "@smithy/middleware-endpoint": "^4.4.8",
28
+ "@smithy/core": "^3.21.0",
29
+ "@smithy/middleware-endpoint": "^4.4.10",
30
30
  "@smithy/middleware-stack": "^4.2.8",
31
31
  "@smithy/protocol-http": "^5.3.8",
32
32
  "@smithy/types": "^4.12.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithy/util-defaults-mode-browser",
3
- "version": "4.3.23",
3
+ "version": "4.3.25",
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.8",
28
- "@smithy/smithy-client": "^4.10.9",
28
+ "@smithy/smithy-client": "^4.10.11",
29
29
  "@smithy/types": "^4.12.0",
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.26",
3
+ "version": "4.2.28",
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",
@@ -28,7 +28,7 @@
28
28
  "@smithy/credential-provider-imds": "^4.2.8",
29
29
  "@smithy/node-config-provider": "^4.3.8",
30
30
  "@smithy/property-provider": "^4.2.8",
31
- "@smithy/smithy-client": "^4.10.9",
31
+ "@smithy/smithy-client": "^4.10.11",
32
32
  "@smithy/types": "^4.12.0",
33
33
  "tslib": "^2.6.2"
34
34
  },
@@ -1,4 +1,4 @@
1
- # lodash v4.17.21
1
+ # lodash v4.17.23
2
2
 
3
3
  The [Lodash](https://lodash.com/) library exported as [Node.js](https://nodejs.org/) modules.
4
4
 
@@ -28,7 +28,7 @@ var at = require('lodash/at');
28
28
  var curryN = require('lodash/fp/curryN');
29
29
  ```
30
30
 
31
- See the [package source](https://github.com/lodash/lodash/tree/4.17.21-npm) for more details.
31
+ See the [package source](https://github.com/lodash/lodash/tree/4.17.23-npm) for more details.
32
32
 
33
33
  **Note:**<br>
34
34
  Install [n_](https://www.npmjs.com/package/n_) for Lodash use in the Node.js < 6 REPL.
@@ -3,6 +3,12 @@ var castPath = require('./_castPath'),
3
3
  parent = require('./_parent'),
4
4
  toKey = require('./_toKey');
5
5
 
6
+ /** Used for built-in method references. */
7
+ var objectProto = Object.prototype;
8
+
9
+ /** Used to check objects for own properties. */
10
+ var hasOwnProperty = objectProto.hasOwnProperty;
11
+
6
12
  /**
7
13
  * The base implementation of `_.unset`.
8
14
  *
@@ -13,8 +19,47 @@ var castPath = require('./_castPath'),
13
19
  */
14
20
  function baseUnset(object, path) {
15
21
  path = castPath(path, object);
16
- object = parent(object, path);
17
- return object == null || delete object[toKey(last(path))];
22
+
23
+ // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
24
+ var index = -1,
25
+ length = path.length;
26
+
27
+ if (!length) {
28
+ return true;
29
+ }
30
+
31
+ var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function');
32
+
33
+ while (++index < length) {
34
+ var key = path[index];
35
+
36
+ // skip non-string keys (e.g., Symbols, numbers)
37
+ if (typeof key !== 'string') {
38
+ continue;
39
+ }
40
+
41
+ // Always block "__proto__" anywhere in the path if it's not expected
42
+ if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
43
+ return false;
44
+ }
45
+
46
+ // Block "constructor.prototype" chains
47
+ if (key === 'constructor' &&
48
+ (index + 1) < length &&
49
+ typeof path[index + 1] === 'string' &&
50
+ path[index + 1] === 'prototype') {
51
+
52
+ // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a')
53
+ if (isRootPrimitive && index === 0) {
54
+ continue;
55
+ }
56
+
57
+ return false;
58
+ }
59
+ }
60
+
61
+ var obj = parent(object, path);
62
+ return obj == null || delete obj[toKey(last(path))];
18
63
  }
19
64
 
20
65
  module.exports = baseUnset;
@@ -13,7 +13,7 @@
13
13
  var undefined;
14
14
 
15
15
  /** Used as the semantic version number. */
16
- var VERSION = '4.17.21';
16
+ var VERSION = '4.17.23';
17
17
 
18
18
  /** Error message constants. */
19
19
  var FUNC_ERROR_TEXT = 'Expected a function';
@@ -25,5 +25,5 @@ return G(2,n)},o.pick=$n,o.slice=function(n,t,r){var e=null==n?0:n.length;return
25
25
  return t(n),n},o.thru=function(n,t){return t(n)},o.toArray=function(n){return M(n)?n.length?A(n):[]:W(n)},o.values=W,o.extend=Bn,Y(o,o),o.clone=function(n){return V(n)?Nn(n)?A(n):k(n,_n(n)):n},o.escape=function(n){return(n=Q(n))&&rn.test(n)?n.replace(tn,fn):n},o.every=function(n,t,r){return t=r?Z:t,f(n,g(t))},o.find=An,o.forEach=z,o.has=function(n,t){return null!=n&&pn.call(n,t)},o.head=q,o.identity=X,o.indexOf=P,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n){return true===n||false===n||H(n)&&"[object Boolean]"==hn.call(n);
26
26
  },o.isDate=function(n){return H(n)&&"[object Date]"==hn.call(n)},o.isEmpty=function(t){return M(t)&&(Nn(t)||L(t)||U(t.splice)||n(t))?!t.length:!_n(t).length},o.isEqual=function(n,t){return b(n,t)},o.isFinite=function(n){return typeof n=="number"&&gn(n)},o.isFunction=U,o.isNaN=function(n){return K(n)&&n!=+n},o.isNull=function(n){return null===n},o.isNumber=K,o.isObject=V,o.isRegExp=function(n){return H(n)&&"[object RegExp]"==hn.call(n)},o.isString=L,o.isUndefined=function(n){return n===Z},o.last=function(n){
27
27
  var t=null==n?0:n.length;return t?n[t-1]:Z},o.max=function(n){return n&&n.length?a(n,X,v):Z},o.min=function(n){return n&&n.length?a(n,X,_):Z},o.noConflict=function(){return on._===this&&(on._=vn),this},o.noop=function(){},o.reduce=C,o.result=function(n,t,r){return t=null==n?Z:n[t],t===Z&&(t=r),U(t)?t.call(n):t},o.size=function(n){return null==n?0:(n=M(n)?n:_n(n),n.length)},o.some=function(n,t,r){return t=r?Z:t,E(n,g(t))},o.uniqueId=function(n){var t=++sn;return Q(n)+t},o.each=z,o.first=q,Y(o,function(){
28
- var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.21",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n);
28
+ var n={};return s(o,function(t,r){pn.call(o.prototype,r)||(n[r]=t)}),n}(),{chain:false}),o.VERSION="4.17.23",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n){var t=(/^(?:replace|split)$/.test(n)?String.prototype:an)[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|join|replace|shift)$/.test(n);o.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(Nn(u)?u:[],n)}return this[r](function(r){return t.apply(Nn(r)?r:[],n);
29
29
  })}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o, define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this);
@@ -12,7 +12,7 @@
12
12
  var undefined;
13
13
 
14
14
  /** Used as the semantic version number. */
15
- var VERSION = '4.17.21';
15
+ var VERSION = '4.17.23';
16
16
 
17
17
  /** Used as the size to enable large array optimizations. */
18
18
  var LARGE_ARRAY_SIZE = 200;
@@ -3766,7 +3766,7 @@
3766
3766
  if (isArray(iteratee)) {
3767
3767
  return function(value) {
3768
3768
  return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
3769
- }
3769
+ };
3770
3770
  }
3771
3771
  return iteratee;
3772
3772
  });
@@ -4370,8 +4370,47 @@
4370
4370
  */
4371
4371
  function baseUnset(object, path) {
4372
4372
  path = castPath(path, object);
4373
- object = parent(object, path);
4374
- return object == null || delete object[toKey(last(path))];
4373
+
4374
+ // Prevent prototype pollution, see: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg
4375
+ var index = -1,
4376
+ length = path.length;
4377
+
4378
+ if (!length) {
4379
+ return true;
4380
+ }
4381
+
4382
+ var isRootPrimitive = object == null || (typeof object !== 'object' && typeof object !== 'function');
4383
+
4384
+ while (++index < length) {
4385
+ var key = path[index];
4386
+
4387
+ // skip non-string keys (e.g., Symbols, numbers)
4388
+ if (typeof key !== 'string') {
4389
+ continue;
4390
+ }
4391
+
4392
+ // Always block "__proto__" anywhere in the path if it's not expected
4393
+ if (key === '__proto__' && !hasOwnProperty.call(object, '__proto__')) {
4394
+ return false;
4395
+ }
4396
+
4397
+ // Block "constructor.prototype" chains
4398
+ if (key === 'constructor' &&
4399
+ (index + 1) < length &&
4400
+ typeof path[index + 1] === 'string' &&
4401
+ path[index + 1] === 'prototype') {
4402
+
4403
+ // Allow ONLY when the path starts at a primitive root, e.g., _.unset(0, 'constructor.prototype.a')
4404
+ if (isRootPrimitive && index === 0) {
4405
+ continue;
4406
+ }
4407
+
4408
+ return false;
4409
+ }
4410
+ }
4411
+
4412
+ var obj = parent(object, path);
4413
+ return obj == null || delete obj[toKey(last(path))];
4375
4414
  }
4376
4415
 
4377
4416
  /**