@alma-cdk/construct-library 0.0.12 → 0.0.14

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/README.md CHANGED
@@ -22,11 +22,12 @@ Custom [Projen Project Type](https://projen.io/docs/concepts/projects/building-y
22
22
  npm i -D @alma-cdk/construct-library
23
23
  ```
24
24
 
25
- 2. If existing project, install `projen@0.99.21` or newer
25
+ 2. If existing project, install `npm i -D projen@0.99.21` or newer
26
26
 
27
27
  2. Import the custom Projen project type:
28
28
  ```diff
29
29
  - import { AwsCdkConstructLibrary } from 'projen/lib/awscdk';
30
+ + import { cdk } from "projen";
30
31
  + import { AlmaCdkConstructLibrary } from "@alma-cdk/construct-library";
31
32
  ```
32
33
 
@@ -46,6 +47,9 @@ Custom [Projen Project Type](https://projen.io/docs/concepts/projects/building-y
46
47
  project.synth();
47
48
  ```
48
49
 
50
+
51
+ 4. Fnm use 24
52
+
49
53
  4. Install `pnpm`
50
54
 
51
55
  5. Run `projen` with `pnpm`:
@@ -94,20 +94,19 @@ class AlmaCdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
94
94
  super(buildAwsCdkConstructLibraryOptions(validatedOptions));
95
95
  this.workflowNodeVersion = validatedOptions.workflowNodeVersion;
96
96
  this.addDevDeps('typescript@^5.9'); // Defaults to very old typescript@4.9
97
- this.addDevDeps('@types/semver@^7');
98
- this.addDevDeps('json-schema-to-typescript@^15');
99
- this.addBundledDeps('zod@4');
100
- this.addBundledDeps('semver@7');
101
97
  this.addTask('format', {
102
98
  exec: 'prettier --write .',
103
99
  });
104
100
  new SonarCloudReportWorkflow_1.SonarCloudReportWorkflow(this, {
105
101
  sonarProjectPropertiesExtraLines: validatedOptions.sonarProjectPropertiesExtraLines,
106
102
  });
107
- new NodeConfig_1.NodeConfig(this);
103
+ new NodeConfig_1.NodeConfig(this, {
104
+ workflowNodeVersion: validatedOptions.workflowNodeVersion,
105
+ pnpmSettings: validatedOptions.pnpmSettings,
106
+ });
108
107
  }
109
108
  }
110
109
  exports.AlmaCdkConstructLibrary = AlmaCdkConstructLibrary;
111
110
  _a = JSII_RTTI_SYMBOL_1;
112
- AlmaCdkConstructLibrary[_a] = { fqn: "@alma-cdk/construct-library.AlmaCdkConstructLibrary", version: "0.0.12" };
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxtYUNka0NvbnN0cnVjdExpYnJhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQWxtYUNka0NvbnN0cnVjdExpYnJhcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBNEM7QUFDNUMsc0RBQXVEO0FBRXZELDZDQUEwQztBQUMxQyw2RkFHa0Q7QUFDbEQseUNBQXdEO0FBQ3hELHlFQUFzRTtBQUN0RSxtRkFBZ0Y7QUFJaEYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQ3BDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztBQUM5QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUM7QUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBVSxDQUFDO0FBQ3RFLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBQ2QsZUFBZTtJQUNmLFdBQVc7SUFDWCxNQUFNO0lBQ04sZUFBZTtDQUNQLENBQUM7QUFDWCxNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLFdBQVc7SUFDWCwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsU0FBUztJQUNULGVBQWU7SUFDZixpQkFBaUI7SUFDakIscUJBQXFCO0NBQ2IsQ0FBQztBQUlYLFNBQVMsYUFBYSxDQUFDLFFBQTJCO0lBQ2hELE9BQU8sSUFBQSw2REFBNkIsRUFBQyxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLElBQVk7SUFDN0MsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFBLDZCQUFzQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFD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LENBQUM7SUFDdkIsQ0FBQzs7QUEzQkgsMERBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFVwZGF0ZVNuYXBzaG90IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgTm9kZUNvbmZpZyB9IGZyb20gJy4vTm9kZUNvbmZpZyc7XG5pbXBvcnQge1xuICBhbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnNTY2hlbWEsXG4gIHR5cGUgQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxufSBmcm9tICcuL3NjaGVtYXMvYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zJztcbmltcG9ydCB7IHBhcnNlU2NvcGVkUGFja2FnZU5hbWUgfSBmcm9tICcuL3NjaGVtYXMvbmFtZSc7XG5pbXBvcnQgeyBTb25hckNsb3VkUmVwb3J0V29ya2Zsb3cgfSBmcm9tICcuL1NvbmFyQ2xvdWRSZXBvcnRXb3JrZmxvdyc7XG5pbXBvcnQgeyB1bmlxdWVLZXl3b3Jkc0Nhc2VJbnNlbnNpdGl2ZSB9IGZyb20gJy4vdW5pcXVlS2V5d29yZHNDYXNlSW5zZW5zaXRpdmUnO1xuXG5leHBvcnQgdHlwZSB7IEFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vc2NoZW1hcy9hbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMnO1xuXG5jb25zdCBDREtfVkVSU0lPTiA9ICcyLjIyMC4wJztcbmNvbnN0IENPTlNUUlVDVFNfVkVSU0lPTiA9ICcxMC4zLjAnO1xuY29uc3QgSlNJSV9WRVJTSU9OID0gJ341LjkuMCc7XG5jb25zdCBKRVNUX1ZFUlNJT04gPSAnXjMwJztcbmNvbnN0IERFRkFVTFRfS0VZV09SRFMgPSBbJ2NkaycsICdhd3MtY2RrJywgJ2F3c2NkaycsICdhd3MnXSBhcyBjb25zdDtcbmNvbnN0IFBSRVRUSUVSX0lHTk9SRV9QQVRURVJOUyA9IFtcbiAgJy5naXRodWIvKiovKicsXG4gICcucHJvamVuLyoqLyonLFxuICAnLnZzY29kZS8qKi8qJyxcbiAgJ2NvdmVyYWdlLyoqLyonLFxuICAnZGlzdC8qKi8qJyxcbiAgJy8qLionLFxuICAnIS5wcm9qZW5yYy50cycsXG5dIGFzIGNvbnN0O1xuY29uc3QgREVGQVVMVF9HSVRJR05PUkVfUEFUVEVSTlMgPSBbXG4gICcuRFNfU3RvcmUnLFxuICAnL2V4YW1wbGVzLyoqL2Nkay5jb250ZXh0Lmpzb24nLFxuICAnL2V4YW1wbGVzLyoqL25vZGVfbW9kdWxlcycsXG4gICcvZXhhbXBsZXMvKiovY2RrLm91dCcsXG4gICcvZXhhbXBsZXMvKiovLmdpdCcsXG4gICdUT0RPLm1kJyxcbiAgJy5zY2FubmVyd29yay8nLFxuICAnKiovKi5kcmF3aW8uYmtwJyxcbiAgJyoqLyouYWZkZXNpZ25+bG9ja34nLFxuXSBhcyBjb25zdDtcblxudHlwZSBWYWxpZGF0ZWRPcHRpb25zID0gei5pbmZlcjx0eXBlb2YgYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zU2NoZW1hPjtcblxuZnVuY3Rpb24gYnVpbGRLZXl3b3JkcyhrZXl3b3JkczogcmVhZG9ubHkgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiB1bmlxdWVLZXl3b3Jkc0Nhc2VJbnNlbnNpdGl2ZShbLi4uREVGQVVMVF9LRVlXT1JEUywgLi4ua2V5d29yZHNdKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQdWJsaXNoVG9QeXBpT3B0aW9ucyhuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgeyBzY29wZSwgcGFja2FnZU5hbWUgfSA9IHBhcnNlU2NvcGVkUGFja2FnZU5hbWUobmFtZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBkaXN0TmFtZTogYCR7c2NvcGV9LiR7cGFja2FnZU5hbWV9YCxcbiAgICBtb2R1bGU6IGAke3Njb3BlLnJlcGxhY2UoLy0vZywgJ18nKX0uJHtwYWNrYWdlTmFtZS5yZXBsYWNlKC8tL2csICdfJyl9YCxcbiAgICB0cnVzdGVkUHVibGlzaGluZzogdHJ1ZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQdWJsaXNoVG9Hb09wdGlvbnMocmVwb3NpdG9yeVVybDogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgbW9kdWxlTmFtZTogYCR7cmVwb3NpdG9yeVVybC5yZXBsYWNlKCdodHRwczovLycsICcnKS5yZXBsYWNlKCcuZ2l0JywgJycpfS1nb2AsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMoXG4gIHZhbGlkYXRlZE9wdGlvbnM6IFZhbGlkYXRlZE9wdGlvbnMsXG4pOiBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLnZhbGlkYXRlZE9wdGlvbnMsXG4gICAgLy8gUGFja2FnZSBtYW5hZ2VyICYgcHJvamVuXG4gICAgcHJvamVuQ29tbWFuZDogJ3BucG0gZXhlYyBwcm9qZW4nLFxuICAgIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbiAgICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAgIHBhY2thZ2VNYW5hZ2VyOiBqYXZhc2NyaXB0Lk5vZGVQYWNrYWdlTWFuYWdlci5QTlBNLFxuICAgIG5wbUFjY2VzczogamF2YXNjcmlwdC5OcG1BY2Nlc3MuUFVCTElDLFxuICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAganNpaVZlcnNpb246IEpTSUlfVkVSU0lPTixcbiAgICBrZXl3b3JkczogYnVpbGRLZXl3b3Jkcyh2YWxpZGF0ZWRPcHRpb25zLmtleXdvcmRzKSxcbiAgICBqZXN0T3B0aW9uczoge1xuICAgICAgamVzdFZlcnNpb246IEpFU1RfVkVSU0lPTixcbiAgICAgIHVwZGF0ZVNuYXBzaG90OiBVcGRhdGVTbmFwc2hvdC5ORVZFUixcbiAgICB9LFxuICAgIC8vIENvZGUgcXVhbGl0eSAoUHJldHRpZXIpXG4gICAgcHJldHRpZXI6IHRydWUsXG4gICAgcHJldHRpZXJPcHRpb25zOiB7XG4gICAgICBpZ25vcmVGaWxlT3B0aW9uczoge1xuICAgICAgICBpZ25vcmVQYXR0ZXJuczogWy4uLlBSRVRUSUVSX0lHTk9SRV9QQVRURVJOU10sXG4gICAgICB9LFxuICAgIH0sXG4gICAgLy8gUHVibGlzaGluZ1xuICAgIHB1Ymxpc2hUb1B5cGk6IGJ1aWxkUHVibGlzaFRvUHlwaU9wdGlvbnModmFsaWRhdGVkT3B0aW9ucy5uYW1lKSxcbiAgICBwdWJsaXNoVG9HbzogYnVpbGRQdWJsaXNoVG9Hb09wdGlvbnModmFsaWRhdGVkT3B0aW9ucy5yZXBvc2l0b3J5VXJsKSxcbiAgICAvLyBDREtcbiAgICBjZGtWZXJzaW9uOiBDREtfVkVSU0lPTixcbiAgICBjb25zdHJ1Y3RzVmVyc2lvbjogQ09OU1RSVUNUU19WRVJTSU9OLFxuICAgIC8vIEdpdCAmIGRldlxuICAgIGdpdGlnbm9yZTogWy4uLkRFRkFVTFRfR0lUSUdOT1JFX1BBVFRFUk5TXSxcbiAgICB0c2NvbmZpZ0Rldjoge1xuICAgICAgaW5jbHVkZTogWydBbG1hQ2RrQ29uc3RydWN0TGlicmFyeS8qKi8qLnRzJ10sXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgYXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnkge1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IHZhbGlkYXRlZE9wdGlvbnMgPVxuICAgICAgYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zU2NoZW1hLnBhcnNlKG9wdGlvbnMpO1xuICAgIHN1cGVyKGJ1aWxkQXdzQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnModmFsaWRhdGVkT3B0aW9ucykpO1xuXG4gICAgdGhpcy53b3JrZmxvd05vZGVWZXJzaW9uID0gdmFsaWRhdGVkT3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uO1xuXG4gICAgdGhpcy5hZGREZXZEZXBzKCd0eXBlc2NyaXB0QF41LjknKTsgLy8gRGVmYXVsdHMgdG8gdmVyeSBvbGQgdHlwZXNjcmlwdEA0LjlcbiAgICB0aGlzLmFkZERldkRlcHMoJ0B0eXBlcy9zZW12ZXJAXjcnKTtcbiAgICB0aGlzLmFkZERldkRlcHMoJ2pzb24tc2NoZW1hLXRvLXR5cGVzY3JpcHRAXjE1Jyk7XG5cbiAgICB0aGlzLmFkZEJ1bmRsZWREZXBzKCd6b2RANCcpO1xuICAgIHRoaXMuYWRkQnVuZGxlZERlcHMoJ3NlbXZlckA3Jyk7XG5cbiAgICB0aGlzLmFkZFRhc2soJ2Zvcm1hdCcsIHtcbiAgICAgIGV4ZWM6ICdwcmV0dGllciAtLXdyaXRlIC4nLFxuICAgIH0pO1xuXG4gICAgbmV3IFNvbmFyQ2xvdWRSZXBvcnRXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBzb25hclByb2plY3RQcm9wZXJ0aWVzRXh0cmFMaW5lczpcbiAgICAgICAgdmFsaWRhdGVkT3B0aW9ucy5zb25hclByb2plY3RQcm9wZXJ0aWVzRXh0cmFMaW5lcyxcbiAgICB9KTtcblxuICAgIG5ldyBOb2RlQ29uZmlnKHRoaXMpO1xuICB9XG59XG4iXX0=
111
+ AlmaCdkConstructLibrary[_a] = { fqn: "@alma-cdk/construct-library.AlmaCdkConstructLibrary", version: "0.0.14" };
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWxtYUNka0NvbnN0cnVjdExpYnJhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQWxtYUNka0NvbnN0cnVjdExpYnJhcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBNEM7QUFDNUMsc0RBQXVEO0FBRXZELDZDQUEwQztBQUMxQyw2RkFHa0Q7QUFDbEQseUNBQXdEO0FBQ3hELHlFQUFzRTtBQUN0RSxtRkFBZ0Y7QUFJaEYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDO0FBQ3BDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQztBQUM5QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUM7QUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBVSxDQUFDO0FBQ3RFLE1BQU0sd0JBQXdCLEdBQUc7SUFDL0IsY0FBYztJQUNkLGNBQWM7SUFDZCxjQUFjO0lBQ2QsZUFBZTtJQUNmLFdBQVc7SUFDWCxNQUFNO0lBQ04sZUFBZTtDQUNQLENBQUM7QUFDWCxNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLFdBQVc7SUFDWCwrQkFBK0I7SUFDL0IsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsU0FBUztJQUNULGVBQWU7SUFDZixpQkFBaUI7SUFDakIscUJBQXFCO0NBQ2IsQ0FBQztBQUlYLFNBQVMsYUFBYSxDQUFDLFFBQTJCO0lBQ2hELE9BQU8sSUFBQSw2REFBNkIsRUFBQyxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLElBQVk7SUFDN0MsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFBLDZCQUFzQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxLQUFLLElBQUksV0FBVyxFQUFFO1FBQ25DLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ3ZFLGlCQUFpQixFQUFFLElBQUk7S0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHVCQUF1QixDQUFDLGFBQXFCO0lBQ3BELE9BQU87UUFDTCxVQUFVLEVBQUUsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLO0tBQzlFLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxrQ0FBa0MsQ0FDekMsZ0JBQWtDO0lBRWxDLE9BQU87UUFDTCxHQUFHLGdCQUFnQjtRQUNuQiwyQkFBMkI7UUFDM0IsYUFBYSxFQUFFLGtCQUFrQjtRQUNqQyxrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLG9CQUFvQixFQUFFLE1BQU07UUFDNUIsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSTtRQUNsRCxTQUFTLEVBQUUsbUJBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTTtRQUN0QyxvQkFBb0IsRUFBRSxJQUFJO1FBQzFCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFFBQVEsRUFBRSxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBQ2xELFdBQVcsRUFBRTtZQUNYLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLGNBQWMsRUFBRSwyQkFBYyxDQUFDLEtBQUs7U0FDckM7UUFDRCwwQkFBMEI7UUFDMUIsUUFBUSxFQUFFLElBQUk7UUFDZCxlQUFlLEVBQUU7WUFDZixpQkFBaUIsRUFBRTtnQkFDakIsY0FBYyxFQUFFLENBQUMsR0FBRyx3QkFBd0IsQ0FBQzthQUM5QztTQUNGO1FBQ0QsYUFBYTtRQUNiLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDL0QsV0FBVyxFQUFFLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztRQUNwRSxNQUFNO1FBQ04sVUFBVSxFQUFFLFdBQVc7UUFDdkIsaUJBQWlCLEVBQUUsa0JBQWtCO1FBQ3JDLFlBQVk7UUFDWixTQUFTLEVBQUUsQ0FBQyxHQUFHLDBCQUEwQixDQUFDO1FBQzFDLFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDLGlDQUFpQyxDQUFDO1NBQzdDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFhLHVCQUF3QixTQUFRLGVBQU0sQ0FBQyxzQkFBc0I7SUFHeEUsWUFBWSxPQUF1QztRQUNqRCxNQUFNLGdCQUFnQixHQUNwQixxRUFBb0MsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7UUFFaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO1FBRTFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3JCLElBQUksRUFBRSxvQkFBb0I7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxJQUFJLEVBQUU7WUFDakMsZ0NBQWdDLEVBQzlCLGdCQUFnQixDQUFDLGdDQUFnQztTQUNwRCxDQUFDLENBQUM7UUFFSCxJQUFJLHVCQUFVLENBQUMsSUFBSSxFQUFFO1lBQ25CLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDLG1CQUFtQjtZQUN6RCxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsWUFBWTtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXpCSCwwREEwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgVXBkYXRlU25hcHNob3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBOb2RlQ29uZmlnIH0gZnJvbSAnLi9Ob2RlQ29uZmlnJztcbmltcG9ydCB7XG4gIGFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9uc1NjaGVtYSxcbiAgdHlwZSBBbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMsXG59IGZyb20gJy4vc2NoZW1hcy9hbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMnO1xuaW1wb3J0IHsgcGFyc2VTY29wZWRQYWNrYWdlTmFtZSB9IGZyb20gJy4vc2NoZW1hcy9uYW1lJztcbmltcG9ydCB7IFNvbmFyQ2xvdWRSZXBvcnRXb3JrZmxvdyB9IGZyb20gJy4vU29uYXJDbG91ZFJlcG9ydFdvcmtmbG93JztcbmltcG9ydCB7IHVuaXF1ZUtleXdvcmRzQ2FzZUluc2Vuc2l0aXZlIH0gZnJvbSAnLi91bmlxdWVLZXl3b3Jkc0Nhc2VJbnNlbnNpdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIHsgQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSAnLi9zY2hlbWFzL2FsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyc7XG5cbmNvbnN0IENES19WRVJTSU9OID0gJzIuMjIwLjAnO1xuY29uc3QgQ09OU1RSVUNUU19WRVJTSU9OID0gJzEwLjMuMCc7XG5jb25zdCBKU0lJX1ZFUlNJT04gPSAnfjUuOS4wJztcbmNvbnN0IEpFU1RfVkVSU0lPTiA9ICdeMzAnO1xuY29uc3QgREVGQVVMVF9LRVlXT1JEUyA9IFsnY2RrJywgJ2F3cy1jZGsnLCAnYXdzY2RrJywgJ2F3cyddIGFzIGNvbnN0O1xuY29uc3QgUFJFVFRJRVJfSUdOT1JFX1BBVFRFUk5TID0gW1xuICAnLmdpdGh1Yi8qKi8qJyxcbiAgJy5wcm9qZW4vKiovKicsXG4gICcudnNjb2RlLyoqLyonLFxuICAnY292ZXJhZ2UvKiovKicsXG4gICdkaXN0LyoqLyonLFxuICAnLyouKicsXG4gICchLnByb2plbnJjLnRzJyxcbl0gYXMgY29uc3Q7XG5jb25zdCBERUZBVUxUX0dJVElHTk9SRV9QQVRURVJOUyA9IFtcbiAgJy5EU19TdG9yZScsXG4gICcvZXhhbXBsZXMvKiovY2RrLmNvbnRleHQuanNvbicsXG4gICcvZXhhbXBsZXMvKiovbm9kZV9tb2R1bGVzJyxcbiAgJy9leGFtcGxlcy8qKi9jZGsub3V0JyxcbiAgJy9leGFtcGxlcy8qKi8uZ2l0JyxcbiAgJ1RPRE8ubWQnLFxuICAnLnNjYW5uZXJ3b3JrLycsXG4gICcqKi8qLmRyYXdpby5ia3AnLFxuICAnKiovKi5hZmRlc2lnbn5sb2NrficsXG5dIGFzIGNvbnN0O1xuXG50eXBlIFZhbGlkYXRlZE9wdGlvbnMgPSB6LmluZmVyPHR5cGVvZiBhbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnNTY2hlbWE+O1xuXG5mdW5jdGlvbiBidWlsZEtleXdvcmRzKGtleXdvcmRzOiByZWFkb25seSBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIHVuaXF1ZUtleXdvcmRzQ2FzZUluc2Vuc2l0aXZlKFsuLi5ERUZBVUxUX0tFWVdPUkRTLCAuLi5rZXl3b3Jkc10pO1xufVxuXG5mdW5jdGlvbiBidWlsZFB1Ymxpc2hUb1B5cGlPcHRpb25zKG5hbWU6IHN0cmluZykge1xuICBjb25zdCB7IHNjb3BlLCBwYWNrYWdlTmFtZSB9ID0gcGFyc2VTY29wZWRQYWNrYWdlTmFtZShuYW1lKTtcblxuICByZXR1cm4ge1xuICAgIGRpc3ROYW1lOiBgJHtzY29wZX0uJHtwYWNrYWdlTmFtZX1gLFxuICAgIG1vZHVsZTogYCR7c2NvcGUucmVwbGFjZSgvLS9nLCAnXycpfS4ke3BhY2thZ2VOYW1lLnJlcGxhY2UoLy0vZywgJ18nKX1gLFxuICAgIHRydXN0ZWRQdWJsaXNoaW5nOiB0cnVlLFxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFB1Ymxpc2hUb0dvT3B0aW9ucyhyZXBvc2l0b3J5VXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBtb2R1bGVOYW1lOiBgJHtyZXBvc2l0b3J5VXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpLnJlcGxhY2UoJy5naXQnLCAnJyl9LWdvYCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyhcbiAgdmFsaWRhdGVkT3B0aW9uczogVmFsaWRhdGVkT3B0aW9ucyxcbik6IGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIHJldHVybiB7XG4gICAgLi4udmFsaWRhdGVkT3B0aW9ucyxcbiAgICAvLyBQYWNrYWdlIG1hbmFnZXIgJiBwcm9qZW5cbiAgICBwcm9qZW5Db21tYW5kOiAncG5wbSBleGVjIHByb2plbicsXG4gICAgYXV0aG9yT3JnYW5pemF0aW9uOiB0cnVlLFxuICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgcGFja2FnZU1hbmFnZXI6IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0sXG4gICAgbnBtQWNjZXNzOiBqYXZhc2NyaXB0Lk5wbUFjY2Vzcy5QVUJMSUMsXG4gICAgbnBtVHJ1c3RlZFB1Ymxpc2hpbmc6IHRydWUsXG4gICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICBqc2lpVmVyc2lvbjogSlNJSV9WRVJTSU9OLFxuICAgIGtleXdvcmRzOiBidWlsZEtleXdvcmRzKHZhbGlkYXRlZE9wdGlvbnMua2V5d29yZHMpLFxuICAgIGplc3RPcHRpb25zOiB7XG4gICAgICBqZXN0VmVyc2lvbjogSkVTVF9WRVJTSU9OLFxuICAgICAgdXBkYXRlU25hcHNob3Q6IFVwZGF0ZVNuYXBzaG90Lk5FVkVSLFxuICAgIH0sXG4gICAgLy8gQ29kZSBxdWFsaXR5IChQcmV0dGllcilcbiAgICBwcmV0dGllcjogdHJ1ZSxcbiAgICBwcmV0dGllck9wdGlvbnM6IHtcbiAgICAgIGlnbm9yZUZpbGVPcHRpb25zOiB7XG4gICAgICAgIGlnbm9yZVBhdHRlcm5zOiBbLi4uUFJFVFRJRVJfSUdOT1JFX1BBVFRFUk5TXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICAvLyBQdWJsaXNoaW5nXG4gICAgcHVibGlzaFRvUHlwaTogYnVpbGRQdWJsaXNoVG9QeXBpT3B0aW9ucyh2YWxpZGF0ZWRPcHRpb25zLm5hbWUpLFxuICAgIHB1Ymxpc2hUb0dvOiBidWlsZFB1Ymxpc2hUb0dvT3B0aW9ucyh2YWxpZGF0ZWRPcHRpb25zLnJlcG9zaXRvcnlVcmwpLFxuICAgIC8vIENES1xuICAgIGNka1ZlcnNpb246IENES19WRVJTSU9OLFxuICAgIGNvbnN0cnVjdHNWZXJzaW9uOiBDT05TVFJVQ1RTX1ZFUlNJT04sXG4gICAgLy8gR2l0ICYgZGV2XG4gICAgZ2l0aWdub3JlOiBbLi4uREVGQVVMVF9HSVRJR05PUkVfUEFUVEVSTlNdLFxuICAgIHRzY29uZmlnRGV2OiB7XG4gICAgICBpbmNsdWRlOiBbJ0FsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5LyoqLyoudHMnXSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgQWxtYUNka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zKSB7XG4gICAgY29uc3QgdmFsaWRhdGVkT3B0aW9ucyA9XG4gICAgICBhbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnNTY2hlbWEucGFyc2Uob3B0aW9ucyk7XG4gICAgc3VwZXIoYnVpbGRBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyh2YWxpZGF0ZWRPcHRpb25zKSk7XG5cbiAgICB0aGlzLndvcmtmbG93Tm9kZVZlcnNpb24gPSB2YWxpZGF0ZWRPcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb247XG5cbiAgICB0aGlzLmFkZERldkRlcHMoJ3R5cGVzY3JpcHRAXjUuOScpOyAvLyBEZWZhdWx0cyB0byB2ZXJ5IG9sZCB0eXBlc2NyaXB0QDQuOVxuXG4gICAgdGhpcy5hZGRUYXNrKCdmb3JtYXQnLCB7XG4gICAgICBleGVjOiAncHJldHRpZXIgLS13cml0ZSAuJyxcbiAgICB9KTtcblxuICAgIG5ldyBTb25hckNsb3VkUmVwb3J0V29ya2Zsb3codGhpcywge1xuICAgICAgc29uYXJQcm9qZWN0UHJvcGVydGllc0V4dHJhTGluZXM6XG4gICAgICAgIHZhbGlkYXRlZE9wdGlvbnMuc29uYXJQcm9qZWN0UHJvcGVydGllc0V4dHJhTGluZXMsXG4gICAgfSk7XG5cbiAgICBuZXcgTm9kZUNvbmZpZyh0aGlzLCB7XG4gICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiB2YWxpZGF0ZWRPcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24sXG4gICAgICBwbnBtU2V0dGluZ3M6IHZhbGlkYXRlZE9wdGlvbnMucG5wbVNldHRpbmdzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,10 +1,13 @@
1
1
  import { cdk } from 'projen';
2
+ import { PnpmWorkspaceSpecification } from './pnpm-workspace-schema';
2
3
  export interface NodeConfigOptions {
3
- workflowNodeVersion: string;
4
+ readonly workflowNodeVersion: string;
5
+ readonly pnpmSettings?: PnpmWorkspaceSpecification;
4
6
  }
7
+ export declare function mergePnpmSettings<T>(defaults: T, overrides: unknown): T;
5
8
  export declare class NodeConfig {
6
9
  /**
7
- * @param project - The CDK construct library project; must expose `workflowNodeVersion` (e.g. AlmaCdkConstructLibrary).
10
+ * @param project - The CDK construct library project.
8
11
  */
9
- constructor(project: cdk.JsiiProject & NodeConfigOptions);
12
+ constructor(project: cdk.JsiiProject, options: NodeConfigOptions);
10
13
  }
package/lib/NodeConfig.js CHANGED
@@ -1,34 +1,58 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NodeConfig = void 0;
4
+ exports.mergePnpmSettings = mergePnpmSettings;
4
5
  const projen_1 = require("projen");
5
6
  const daysToMinutes_1 = require("./daysToMinutes");
7
+ function isPlainObject(value) {
8
+ return value != null && typeof value === 'object' && !Array.isArray(value);
9
+ }
10
+ function mergePnpmSettings(defaults, overrides) {
11
+ if (Array.isArray(defaults) && Array.isArray(overrides)) {
12
+ return [...defaults, ...overrides];
13
+ }
14
+ if (isPlainObject(defaults) && isPlainObject(overrides)) {
15
+ const mergedEntries = Object.keys(overrides).map((key) => [
16
+ key,
17
+ key in defaults
18
+ ? mergePnpmSettings(defaults[key], overrides[key])
19
+ : overrides[key],
20
+ ]);
21
+ return {
22
+ ...defaults,
23
+ ...Object.fromEntries(mergedEntries),
24
+ };
25
+ }
26
+ return (overrides ?? defaults);
27
+ }
6
28
  class NodeConfig {
7
29
  /**
8
- * @param project - The CDK construct library project; must expose `workflowNodeVersion` (e.g. AlmaCdkConstructLibrary).
30
+ * @param project - The CDK construct library project.
9
31
  */
10
- constructor(project) {
32
+ constructor(project, options) {
11
33
  new projen_1.TextFile(project, '.nvmrc', {
12
- lines: [project.workflowNodeVersion],
34
+ lines: [options.workflowNodeVersion],
13
35
  });
14
- new projen_1.YamlFile(project, 'pnpm-workspace.yaml', {
15
- obj: {
16
- minimumReleaseAge: (0, daysToMinutes_1.daysToMinutes)(3),
17
- minimumReleaseAgeExclude: ['@alma-cdk/construct-library'],
18
- trustPolicy: 'no-downgrade',
19
- trustPolicyIgnoreAfter: (0, daysToMinutes_1.daysToMinutes)(14),
20
- trustPolicyExclude: ['jsii@5.9.33'],
21
- nodeLinker: 'hoisted', // required for bundled deps
22
- resolutionMode: 'highest',
23
- strictDepBuilds: true,
24
- onlyBuiltDependencies: ['unrs-resolver'], // allow unrs-resolver build scripts
25
- blockExoticSubdeps: true,
26
- overrides: {
27
- 'ajv@^8': '^8.18.0',
28
- },
36
+ const defaultWorkspaceConfig = {
37
+ minimumReleaseAge: (0, daysToMinutes_1.daysToMinutes)(3),
38
+ minimumReleaseAgeExclude: ['@alma-cdk/construct-library'],
39
+ trustPolicy: 'no-downgrade',
40
+ trustPolicyIgnoreAfter: (0, daysToMinutes_1.daysToMinutes)(14),
41
+ trustPolicyExclude: ['jsii@5.9.33'],
42
+ nodeLinker: 'hoisted', // required for bundled deps
43
+ resolutionMode: 'highest',
44
+ strictDepBuilds: true,
45
+ onlyBuiltDependencies: ['unrs-resolver'], // allow unrs-resolver build scripts
46
+ blockExoticSubdeps: true,
47
+ overrides: {
48
+ 'ajv@^8': '^8.18.0',
29
49
  },
50
+ };
51
+ const workspaceConfig = mergePnpmSettings(defaultWorkspaceConfig, options.pnpmSettings);
52
+ new projen_1.YamlFile(project, 'pnpm-workspace.yaml', {
53
+ obj: workspaceConfig,
30
54
  });
31
55
  }
32
56
  }
33
57
  exports.NodeConfig = NodeConfig;
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ob2RlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFpRDtBQUNqRCxtREFBZ0Q7QUFPaEQsTUFBYSxVQUFVO0lBQ3JCOztPQUVHO0lBQ0gsWUFBWSxPQUE0QztRQUN0RCxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtZQUM5QixLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7U0FDckMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxpQkFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtZQUMzQyxHQUFHLEVBQUU7Z0JBQ0gsaUJBQWlCLEVBQUUsSUFBQSw2QkFBYSxFQUFDLENBQUMsQ0FBQztnQkFDbkMsd0JBQXdCLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDekQsV0FBVyxFQUFFLGNBQWM7Z0JBQzNCLHNCQUFzQixFQUFFLElBQUEsNkJBQWEsRUFBQyxFQUFFLENBQUM7Z0JBQ3pDLGtCQUFrQixFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNuQyxVQUFVLEVBQUUsU0FBUyxFQUFFLDRCQUE0QjtnQkFDbkQsY0FBYyxFQUFFLFNBQVM7Z0JBQ3pCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixxQkFBcUIsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLG9DQUFvQztnQkFDOUUsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsU0FBUyxFQUFFO29CQUNULFFBQVEsRUFBRSxTQUFTO2lCQUNwQjthQUM0QjtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQkQsZ0NBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUsIGNkaywgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgZGF5c1RvTWludXRlcyB9IGZyb20gJy4vZGF5c1RvTWludXRlcyc7XG5pbXBvcnQgeyBQbnBtV29ya3NwYWNlU3BlY2lmaWNhdGlvbiB9IGZyb20gJy4vcG5wbS13b3Jrc3BhY2Utc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnT3B0aW9ucyB7XG4gIHdvcmtmbG93Tm9kZVZlcnNpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE5vZGVDb25maWcge1xuICAvKipcbiAgICogQHBhcmFtIHByb2plY3QgLSBUaGUgQ0RLIGNvbnN0cnVjdCBsaWJyYXJ5IHByb2plY3Q7IG11c3QgZXhwb3NlIGB3b3JrZmxvd05vZGVWZXJzaW9uYCAoZS5nLiBBbG1hQ2RrQ29uc3RydWN0TGlicmFyeSkuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBjZGsuSnNpaVByb2plY3QgJiBOb2RlQ29uZmlnT3B0aW9ucykge1xuICAgIG5ldyBUZXh0RmlsZShwcm9qZWN0LCAnLm52bXJjJywge1xuICAgICAgbGluZXM6IFtwcm9qZWN0LndvcmtmbG93Tm9kZVZlcnNpb25dLFxuICAgIH0pO1xuXG4gICAgbmV3IFlhbWxGaWxlKHByb2plY3QsICdwbnBtLXdvcmtzcGFjZS55YW1sJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIG1pbmltdW1SZWxlYXNlQWdlOiBkYXlzVG9NaW51dGVzKDMpLFxuICAgICAgICBtaW5pbXVtUmVsZWFzZUFnZUV4Y2x1ZGU6IFsnQGFsbWEtY2RrL2NvbnN0cnVjdC1saWJyYXJ5J10sXG4gICAgICAgIHRydXN0UG9saWN5OiAnbm8tZG93bmdyYWRlJyxcbiAgICAgICAgdHJ1c3RQb2xpY3lJZ25vcmVBZnRlcjogZGF5c1RvTWludXRlcygxNCksXG4gICAgICAgIHRydXN0UG9saWN5RXhjbHVkZTogWydqc2lpQDUuOS4zMyddLFxuICAgICAgICBub2RlTGlua2VyOiAnaG9pc3RlZCcsIC8vIHJlcXVpcmVkIGZvciBidW5kbGVkIGRlcHNcbiAgICAgICAgcmVzb2x1dGlvbk1vZGU6ICdoaWdoZXN0JyxcbiAgICAgICAgc3RyaWN0RGVwQnVpbGRzOiB0cnVlLFxuICAgICAgICBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IFsndW5ycy1yZXNvbHZlciddLCAvLyBhbGxvdyB1bnJzLXJlc29sdmVyIGJ1aWxkIHNjcmlwdHNcbiAgICAgICAgYmxvY2tFeG90aWNTdWJkZXBzOiB0cnVlLFxuICAgICAgICBvdmVycmlkZXM6IHtcbiAgICAgICAgICAnYWp2QF44JzogJ144LjE4LjAnLFxuICAgICAgICB9LFxuICAgICAgfSBhcyBQbnBtV29ya3NwYWNlU3BlY2lmaWNhdGlvbixcbiAgICB9KTtcbiAgfVxufVxuIl19
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZUNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Ob2RlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWVBLDhDQW9CQztBQW5DRCxtQ0FBaUQ7QUFDakQsbURBQWdEO0FBUWhELFNBQVMsYUFBYSxDQUNwQixLQUFjO0lBRWQsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFJLFFBQVcsRUFBRSxTQUFrQjtJQUNsRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBTSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDeEQsR0FBRztZQUNILEdBQUcsSUFBSSxRQUFRO2dCQUNiLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsR0FBRyxRQUFRO1lBQ1gsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztTQUNoQyxDQUFDO0lBQ1QsQ0FBQztJQUVELE9BQU8sQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFNLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQWEsVUFBVTtJQUNyQjs7T0FFRztJQUNILFlBQVksT0FBd0IsRUFBRSxPQUEwQjtRQUM5RCxJQUFJLGlCQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtZQUM5QixLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7U0FDckMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxzQkFBc0IsR0FBK0I7WUFDekQsaUJBQWlCLEVBQUUsSUFBQSw2QkFBYSxFQUFDLENBQUMsQ0FBQztZQUNuQyx3QkFBd0IsRUFBRSxDQUFDLDZCQUE2QixDQUFDO1lBQ3pELFdBQVcsRUFBRSxjQUFjO1lBQzNCLHNCQUFzQixFQUFFLElBQUEsNkJBQWEsRUFBQyxFQUFFLENBQUM7WUFDekMsa0JBQWtCLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDbkMsVUFBVSxFQUFFLFNBQVMsRUFBRSw0QkFBNEI7WUFDbkQsY0FBYyxFQUFFLFNBQVM7WUFDekIsZUFBZSxFQUFFLElBQUk7WUFDckIscUJBQXFCLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxvQ0FBb0M7WUFDOUUsa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7YUFDcEI7U0FDRixDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsaUJBQWlCLENBQ3ZDLHNCQUFzQixFQUN0QixPQUFPLENBQUMsWUFBWSxDQUNyQixDQUFDO1FBRUYsSUFBSSxpQkFBUSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRTtZQUMzQyxHQUFHLEVBQUUsZUFBZTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsQ0QsZ0NBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGV4dEZpbGUsIGNkaywgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgZGF5c1RvTWludXRlcyB9IGZyb20gJy4vZGF5c1RvTWludXRlcyc7XG5pbXBvcnQgeyBQbnBtV29ya3NwYWNlU3BlY2lmaWNhdGlvbiB9IGZyb20gJy4vcG5wbS13b3Jrc3BhY2Utc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29uZmlnT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHdvcmtmbG93Tm9kZVZlcnNpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcG5wbVNldHRpbmdzPzogUG5wbVdvcmtzcGFjZVNwZWNpZmljYXRpb247XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QoXG4gIHZhbHVlOiB1bmtub3duLFxuKTogdmFsdWUgaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlUG5wbVNldHRpbmdzPFQ+KGRlZmF1bHRzOiBULCBvdmVycmlkZXM6IHVua25vd24pOiBUIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGVmYXVsdHMpICYmIEFycmF5LmlzQXJyYXkob3ZlcnJpZGVzKSkge1xuICAgIHJldHVybiBbLi4uZGVmYXVsdHMsIC4uLm92ZXJyaWRlc10gYXMgVDtcbiAgfVxuXG4gIGlmIChpc1BsYWluT2JqZWN0KGRlZmF1bHRzKSAmJiBpc1BsYWluT2JqZWN0KG92ZXJyaWRlcykpIHtcbiAgICBjb25zdCBtZXJnZWRFbnRyaWVzID0gT2JqZWN0LmtleXMob3ZlcnJpZGVzKS5tYXAoKGtleSkgPT4gW1xuICAgICAga2V5LFxuICAgICAga2V5IGluIGRlZmF1bHRzXG4gICAgICAgID8gbWVyZ2VQbnBtU2V0dGluZ3MoZGVmYXVsdHNba2V5XSwgb3ZlcnJpZGVzW2tleV0pXG4gICAgICAgIDogb3ZlcnJpZGVzW2tleV0sXG4gICAgXSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5PYmplY3QuZnJvbUVudHJpZXMobWVyZ2VkRW50cmllcyksXG4gICAgfSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIChvdmVycmlkZXMgPz8gZGVmYXVsdHMpIGFzIFQ7XG59XG5cbmV4cG9ydCBjbGFzcyBOb2RlQ29uZmlnIHtcbiAgLyoqXG4gICAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIENESyBjb25zdHJ1Y3QgbGlicmFyeSBwcm9qZWN0LlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvamVjdDogY2RrLkpzaWlQcm9qZWN0LCBvcHRpb25zOiBOb2RlQ29uZmlnT3B0aW9ucykge1xuICAgIG5ldyBUZXh0RmlsZShwcm9qZWN0LCAnLm52bXJjJywge1xuICAgICAgbGluZXM6IFtvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb25dLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdFdvcmtzcGFjZUNvbmZpZzogUG5wbVdvcmtzcGFjZVNwZWNpZmljYXRpb24gPSB7XG4gICAgICBtaW5pbXVtUmVsZWFzZUFnZTogZGF5c1RvTWludXRlcygzKSxcbiAgICAgIG1pbmltdW1SZWxlYXNlQWdlRXhjbHVkZTogWydAYWxtYS1jZGsvY29uc3RydWN0LWxpYnJhcnknXSxcbiAgICAgIHRydXN0UG9saWN5OiAnbm8tZG93bmdyYWRlJyxcbiAgICAgIHRydXN0UG9saWN5SWdub3JlQWZ0ZXI6IGRheXNUb01pbnV0ZXMoMTQpLFxuICAgICAgdHJ1c3RQb2xpY3lFeGNsdWRlOiBbJ2pzaWlANS45LjMzJ10sXG4gICAgICBub2RlTGlua2VyOiAnaG9pc3RlZCcsIC8vIHJlcXVpcmVkIGZvciBidW5kbGVkIGRlcHNcbiAgICAgIHJlc29sdXRpb25Nb2RlOiAnaGlnaGVzdCcsXG4gICAgICBzdHJpY3REZXBCdWlsZHM6IHRydWUsXG4gICAgICBvbmx5QnVpbHREZXBlbmRlbmNpZXM6IFsndW5ycy1yZXNvbHZlciddLCAvLyBhbGxvdyB1bnJzLXJlc29sdmVyIGJ1aWxkIHNjcmlwdHNcbiAgICAgIGJsb2NrRXhvdGljU3ViZGVwczogdHJ1ZSxcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICAnYWp2QF44JzogJ144LjE4LjAnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3Qgd29ya3NwYWNlQ29uZmlnID0gbWVyZ2VQbnBtU2V0dGluZ3MoXG4gICAgICBkZWZhdWx0V29ya3NwYWNlQ29uZmlnLFxuICAgICAgb3B0aW9ucy5wbnBtU2V0dGluZ3MsXG4gICAgKTtcblxuICAgIG5ldyBZYW1sRmlsZShwcm9qZWN0LCAncG5wbS13b3Jrc3BhY2UueWFtbCcsIHtcbiAgICAgIG9iajogd29ya3NwYWNlQ29uZmlnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/lib/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export { AlmaCdkConstructLibrary, type AlmaCdkConstructLibraryOptions, } from './AlmaCdkConstructLibrary';
2
+ export type { AuditConfig, Catalog, Dependency, Dependency1, ExecutionEnv, OptionalDependency, PackageExtension, PeerDependency, PeerDependencyMeta, PeerDependencyMetaValue, PeerDependencyRules, PnpmWorkspaceSpecification, SupportedArchitectures, UpdateConfig, } from './pnpm-workspace-schema';
package/lib/index.js CHANGED
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AlmaCdkConstructLibrary = void 0;
4
4
  var AlmaCdkConstructLibrary_1 = require("./AlmaCdkConstructLibrary");
5
5
  Object.defineProperty(exports, "AlmaCdkConstructLibrary", { enumerable: true, get: function () { return AlmaCdkConstructLibrary_1.AlmaCdkConstructLibrary; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBR21DO0FBRmpDLGtJQUFBLHVCQUF1QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQWxtYUNka0NvbnN0cnVjdExpYnJhcnksXG4gIHR5cGUgQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxufSBmcm9tICcuL0FsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5JztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBR21DO0FBRmpDLGtJQUFBLHVCQUF1QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgQWxtYUNka0NvbnN0cnVjdExpYnJhcnksXG4gIHR5cGUgQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLFxufSBmcm9tICcuL0FsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5JztcblxuZXhwb3J0IHR5cGUge1xuICBBdWRpdENvbmZpZyxcbiAgQ2F0YWxvZyxcbiAgRGVwZW5kZW5jeSxcbiAgRGVwZW5kZW5jeTEsXG4gIEV4ZWN1dGlvbkVudixcbiAgT3B0aW9uYWxEZXBlbmRlbmN5LFxuICBQYWNrYWdlRXh0ZW5zaW9uLFxuICBQZWVyRGVwZW5kZW5jeSxcbiAgUGVlckRlcGVuZGVuY3lNZXRhLFxuICBQZWVyRGVwZW5kZW5jeU1ldGFWYWx1ZSxcbiAgUGVlckRlcGVuZGVuY3lSdWxlcyxcbiAgUG5wbVdvcmtzcGFjZVNwZWNpZmljYXRpb24sXG4gIFN1cHBvcnRlZEFyY2hpdGVjdHVyZXMsXG4gIFVwZGF0ZUNvbmZpZyxcbn0gZnJvbSAnLi9wbnBtLXdvcmtzcGFjZS1zY2hlbWEnOyJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { cdk } from 'projen';
2
2
  import { BranchOptions } from 'projen/lib/release';
3
3
  import { z } from 'zod';
4
+ import type { PnpmWorkspaceSpecification } from '../pnpm-workspace-schema';
4
5
  /** Options for a release branch (matches projen BranchOptions) */
5
6
  export declare const branchOptionsSchema: z.ZodObject<{
6
7
  workflowName: z.ZodOptional<z.ZodString>;
@@ -32,6 +33,7 @@ export interface AlmaCdkConstructLibraryOptions {
32
33
  readonly minNodeVersion?: string;
33
34
  readonly workflowNodeVersion?: string;
34
35
  readonly maxNodeVersion?: string;
36
+ readonly pnpmSettings?: PnpmWorkspaceSpecification;
35
37
  /** Appended to generated `sonar-project.properties` after the default lines (e.g. Sonar multicriteria ignores). */
36
38
  readonly sonarProjectPropertiesExtraLines?: string[];
37
39
  }
@@ -62,5 +64,6 @@ export declare const almaCdkConstructLibraryOptionsSchema: z.ZodObject<{
62
64
  minNodeVersion: z.ZodDefault<z.ZodString>;
63
65
  workflowNodeVersion: z.ZodDefault<z.ZodString>;
64
66
  maxNodeVersion: z.ZodDefault<z.ZodString>;
67
+ pnpmSettings: z.ZodOptional<z.ZodCustom<PnpmWorkspaceSpecification, PnpmWorkspaceSpecification>>;
65
68
  sonarProjectPropertiesExtraLines: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
69
  }, z.core.$strip>;
@@ -17,6 +17,7 @@ function coerceValidSemver(value) {
17
17
  * Parsed output is the original string — no normalization (e.g. `20` stays `20`, not `20.0.0`).
18
18
  */
19
19
  const nodeVersionStringSchema = zod_1.z.string().refine((s) => coerceValidSemver(s) != null, { message: 'Must be a valid semver or coercible to one' });
20
+ const pnpmSettingsSchema = zod_1.z.custom((value) => value != null && typeof value === 'object' && !Array.isArray(value), { message: 'Must be an object' });
20
21
  function validateNodeVersionOrder(opts) {
21
22
  const min = coerceValidSemver(opts.minNodeVersion);
22
23
  const max = coerceValidSemver(opts.maxNodeVersion);
@@ -61,9 +62,10 @@ exports.almaCdkConstructLibraryOptionsSchema = zod_1.z
61
62
  minNodeVersion: nodeVersionStringSchema.default(NODEJS_MIN_VERSION),
62
63
  workflowNodeVersion: nodeVersionStringSchema.default(NODEJS_MAX_VERSION),
63
64
  maxNodeVersion: nodeVersionStringSchema.default(NODEJS_MAX_VERSION),
65
+ pnpmSettings: pnpmSettingsSchema.optional(),
64
66
  sonarProjectPropertiesExtraLines: zod_1.z.array(zod_1.z.string()).optional(),
65
67
  })
66
68
  .refine(validateNodeVersionOrder, {
67
69
  message: 'Node versions must satisfy min <= workflow <= max',
68
70
  });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFxQztBQUVyQyxpQ0FBaUM7QUFDakMsNkJBQXdCO0FBQ3hCLGlDQUFvQztBQUNwQyxtREFBc0Q7QUFFdEQsNkJBQTZCO0FBQzdCLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUVwRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxPQUFPLE9BQU8sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQy9DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQ25DLEVBQUUsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLENBQzFELENBQUM7QUFFRixTQUFTLHdCQUF3QixDQUFDLElBSWpDO0lBQ0MsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuRCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FB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N0QsQ0FBZ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEJyYW5jaE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL3JlbGVhc2UnO1xuaW1wb3J0ICogYXMgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJztcbmltcG9ydCB7IG5hbWVTY2hlbWEgfSBmcm9tICcuL25hbWUnO1xuaW1wb3J0IHsgcmVwb3NpdG9yeVVybFNjaGVtYSB9IGZyb20gJy4vcmVwb3NpdG9yeVVybCc7XG5cbi8qKiBQb3NpdGl2ZSBpbnRlZ2VyICjiiaUgMSkgKi9cbmNvbnN0IHBvc2l0aXZlSW50ZWdlciA9IHoubnVtYmVyKCkuaW50KCkucG9zaXRpdmUoKTtcblxuZnVuY3Rpb24gY29lcmNlVmFsaWRTZW12ZXIodmFsdWU6IHN0cmluZyk6IHNlbXZlci5TZW1WZXIgfCBudWxsIHtcbiAgY29uc3QgY29lcmNlZCA9IHNlbXZlci5jb2VyY2UodmFsdWUpO1xuICByZXR1cm4gY29lcmNlZCAhPSBudWxsICYmIHNlbXZlci52YWxpZChjb2VyY2VkKSAhPSBudWxsID8gY29lcmNlZCA6IG51bGw7XG59XG5cbi8qKlxuICogTm9kZS9lbmdpbmUgdmVyc2lvbjogbXVzdCBiZSB2YWxpZCBzZW12ZXIgb3IgY29lcmNpYmxlIHRvIG9uZSAoZS5nLiBtYWpvci1vbmx5IGAyMGApLlxuICogUGFyc2VkIG91dHB1dCBpcyB0aGUgb3JpZ2luYWwgc3RyaW5nIOKAlCBubyBub3JtYWxpemF0aW9uIChlLmcuIGAyMGAgc3RheXMgYDIwYCwgbm90IGAyMC4wLjBgKS5cbiAqL1xuY29uc3Qgbm9kZVZlcnNpb25TdHJpbmdTY2hlbWEgPSB6LnN0cmluZygpLnJlZmluZShcbiAgKHMpID0+IGNvZXJjZVZhbGlkU2VtdmVyKHMpICE9IG51bGwsXG4gIHsgbWVzc2FnZTogJ011c3QgYmUgYSB2YWxpZCBzZW12ZXIgb3IgY29lcmNpYmxlIHRvIG9uZScgfSxcbik7XG5cbmZ1bmN0aW9uIHZhbGlkYXRlTm9kZVZlcnNpb25PcmRlcihvcHRzOiB7XG4gIG1pbk5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gIG1heE5vZGVWZXJzaW9uOiBzdHJpbmc7XG4gIHdvcmtmbG93Tm9kZVZlcnNpb246IHN0cmluZztcbn0pOiBib29sZWFuIHtcbiAgY29uc3QgbWluID0gY29lcmNlVmFsaWRTZW12ZXIob3B0cy5taW5Ob2RlVmVyc2lvbik7XG4gIGNvbnN0IG1heCA9IGNvZXJjZVZhbGlkU2VtdmVyKG9wdHMubWF4Tm9kZVZlcnNpb24pO1xuICBjb25zdCB3b3JrZmxvdyA9IGNvZXJjZVZhbGlkU2VtdmVyKG9wdHMud29ya2Zsb3dOb2RlVmVyc2lvbik7XG4gIGlmIChtaW4gPT0gbnVsbCB8fCBtYXggPT0gbnVsbCB8fCB3b3JrZmxvdyA9PSBudWxsKSByZXR1cm4gdHJ1ZTsgLy8gbGV0IGZpZWxkLWxldmVsIHZhbGlkYXRpb24gaGFuZGxlIGludmFsaWQgc2VtdmVyXG4gIHJldHVybiAoXG4gICAgc2VtdmVyLmx0ZShtaW4sIG1heCkgJiZcbiAgICBzZW12ZXIubHRlKG1pbiwgd29ya2Zsb3cpICYmXG4gICAgc2VtdmVyLmx0ZSh3b3JrZmxvdywgbWF4KVxuICApO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgYSByZWxlYXNlIGJyYW5jaCAobWF0Y2hlcyBwcm9qZW4gQnJhbmNoT3B0aW9ucykgKi9cbmV4cG9ydCBjb25zdCBicmFuY2hPcHRpb25zU2NoZW1hID0gei5vYmplY3Qoe1xuICB3b3JrZmxvd05hbWU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZW52aXJvbm1lbnQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWFqb3JWZXJzaW9uOiBwb3NpdGl2ZUludGVnZXIsXG4gIG1pbk1ham9yVmVyc2lvbjogcG9zaXRpdmVJbnRlZ2VyLm9wdGlvbmFsKCksXG4gIG1pbm9yVmVyc2lvbjogcG9zaXRpdmVJbnRlZ2VyLm9wdGlvbmFsKCksXG4gIHByZXJlbGVhc2U6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgdGFnUHJlZml4OiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIG5wbURpc3RUYWc6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5cbi8qKlxuICogTmVlZHMgdG8gYmUgbWFudWFsbHkgdHlwZWQgZHVlIHRvIEpTSUkgbGltaXRhdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIHtcbiAgcmVhZG9ubHkgc3RhYmlsaXR5OiBjZGsuU3RhYmlsaXR5O1xuICByZWFkb25seSBtYWpvclZlcnNpb246IG51bWJlcjtcbiAgcmVhZG9ubHkgYXV0aG9yOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF1dGhvckFkZHJlc3M6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFkb25seSBrZXl3b3Jkcz86IHN0cmluZ1tdO1xuICByZWFkb25seSByZXBvc2l0b3J5VXJsOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlbGVhc2VCcmFuY2hlcz86IFJlY29yZDxzdHJpbmcsIEJyYW5jaE9wdGlvbnM+O1xuICByZWFkb25seSByZWxlYXNlRW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlcHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZGV2RGVwcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBidW5kbGVkRGVwcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBtaW5Ob2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgd29ya2Zsb3dOb2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4Tm9kZVZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKiBBcHBlbmRlZCB0byBnZW5lcmF0ZWQgYHNvbmFyLXByb2plY3QucHJvcGVydGllc2AgYWZ0ZXIgdGhlIGRlZmF1bHQgbGluZXMgKGUuZy4gU29uYXIgbXVsdGljcml0ZXJpYSBpZ25vcmVzKS4gKi9cbiAgcmVhZG9ubHkgc29uYXJQcm9qZWN0UHJvcGVydGllc0V4dHJhTGluZXM/OiBzdHJpbmdbXTtcbn1cblxuY29uc3QgTk9ERUpTX01JTl9WRVJTSU9OID0gJzIwJztcbmNvbnN0IE5PREVKU19NQVhfVkVSU0lPTiA9ICcyNCc7XG5cblxuLyoqIFByb2plbiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IG9wdGlvbnMgd2l0aCB2YWxpZGF0aW9uIGFuZCBkZWZhdWx0cyAobWluL21heC93b3JrZmxvdyBOb2RlIHZlcnNpb25zLCBzY29wZWQgbmFtZSwgZXRjLikuICovXG4vLyBKU0lJIGNhbm5vdCBpbmZlciB0aGlzIHNjaGVtYSBzaGFwZSBjbGVhbmx5LCBzbyB3ZSBrZWVwIHRoZSBydW50aW1lIHNjaGVtYVxuLy8gYW5kIGl0cyBwdWJsaWMgb3B0aW9ucyBpbnRlcmZhY2UgYWxpZ25lZCBleHBsaWNpdGx5LlxuZXhwb3J0IGNvbnN0IGFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgc3RhYmlsaXR5OiB6LmVudW0oY2RrLlN0YWJpbGl0eSksXG4gICAgbWFqb3JWZXJzaW9uOiBwb3NpdGl2ZUludGVnZXIsXG4gICAgYXV0aG9yOiB6LnN0cmluZygpLFxuICAgIGF1dGhvckFkZHJlc3M6IHouZW1haWwoKSxcbiAgICBuYW1lOiBuYW1lU2NoZW1hLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICAgIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLmRlZmF1bHQoW10pLFxuICAgIHJlcG9zaXRvcnlVcmw6IHJlcG9zaXRvcnlVcmxTY2hlbWEsXG4gICAgcmVsZWFzZUJyYW5jaGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCBicmFuY2hPcHRpb25zU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIHJlbGVhc2VFbnZpcm9ubWVudDogei5zdHJpbmcoKSxcbiAgICBkZXBzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgZGV2RGVwczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgIGJ1bmRsZWREZXBzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgbWluTm9kZVZlcnNpb246IG5vZGVWZXJzaW9uU3RyaW5nU2NoZW1hLmRlZmF1bHQoTk9ERUpTX01JTl9WRVJTSU9OKSxcbiAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBub2RlVmVyc2lvblN0cmluZ1NjaGVtYS5kZWZhdWx0KE5PREVKU19NQVhfVkVSU0lPTiksXG4gICAgbWF4Tm9kZVZlcnNpb246IG5vZGVWZXJzaW9uU3RyaW5nU2NoZW1hLmRlZmF1bHQoTk9ERUpTX01BWF9WRVJTSU9OKSxcbiAgICBzb25hclByb2plY3RQcm9wZXJ0aWVzRXh0cmFMaW5lczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB9KVxuICAucmVmaW5lKHZhbGlkYXRlTm9kZVZlcnNpb25PcmRlciwge1xuICAgIG1lc3NhZ2U6ICdOb2RlIHZlcnNpb25zIG11c3Qgc2F0aXNmeSBtaW4gPD0gd29ya2Zsb3cgPD0gbWF4JyxcbiAgfSkgc2F0aXNmaWVzIHouWm9kVHlwZTxQYXJ0aWFsPGF3c2Nkay5Bd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucz4+ICYgei5ab2RUeXBlPEFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucz47XG5cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjaGVtYXMvYWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFxQztBQUVyQyxpQ0FBaUM7QUFDakMsNkJBQXdCO0FBRXhCLGlDQUFvQztBQUNwQyxtREFBc0Q7QUFFdEQsNkJBQTZCO0FBQzdCLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUVwRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxPQUFPLE9BQU8sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNFLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQy9DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQ25DLEVBQUUsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLENBQzFELENBQUM7QUFDRixNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQ2pDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQzlFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLENBQ2pDLENBQUM7QUFFRixTQUFT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SUFDeEUsY0FBYyxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUNuRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxFQUFFO0lBQzNDLGdDQUFnQyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQ2pFLENBQUM7S0FDRCxNQUFNLENBQUMsd0JBQXdCLEVBQUU7SUFDaEMsT0FBTyxFQUFFLG1EQUFtRDtDQUM3RCxDQUFnSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQnJhbmNoT3B0aW9ucyB9IGZyb20gJ3Byb2plbi9saWIvcmVsZWFzZSc7XG5pbXBvcnQgKiBhcyBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHR5cGUgeyBQbnBtV29ya3NwYWNlU3BlY2lmaWNhdGlvbiB9IGZyb20gJy4uL3BucG0td29ya3NwYWNlLXNjaGVtYSc7XG5pbXBvcnQgeyBuYW1lU2NoZW1hIH0gZnJvbSAnLi9uYW1lJztcbmltcG9ydCB7IHJlcG9zaXRvcnlVcmxTY2hlbWEgfSBmcm9tICcuL3JlcG9zaXRvcnlVcmwnO1xuXG4vKiogUG9zaXRpdmUgaW50ZWdlciAo4omlIDEpICovXG5jb25zdCBwb3NpdGl2ZUludGVnZXIgPSB6Lm51bWJlcigpLmludCgpLnBvc2l0aXZlKCk7XG5cbmZ1bmN0aW9uIGNvZXJjZVZhbGlkU2VtdmVyKHZhbHVlOiBzdHJpbmcpOiBzZW12ZXIuU2VtVmVyIHwgbnVsbCB7XG4gIGNvbnN0IGNvZXJjZWQgPSBzZW12ZXIuY29lcmNlKHZhbHVlKTtcbiAgcmV0dXJuIGNvZXJjZWQgIT0gbnVsbCAmJiBzZW12ZXIudmFsaWQoY29lcmNlZCkgIT0gbnVsbCA/IGNvZXJjZWQgOiBudWxsO1xufVxuXG4vKipcbiAqIE5vZGUvZW5naW5lIHZlcnNpb246IG11c3QgYmUgdmFsaWQgc2VtdmVyIG9yIGNvZXJjaWJsZSB0byBvbmUgKGUuZy4gbWFqb3Itb25seSBgMjBgKS5cbiAqIFBhcnNlZCBvdXRwdXQgaXMgdGhlIG9yaWdpbmFsIHN0cmluZyDigJQgbm8gbm9ybWFsaXphdGlvbiAoZS5nLiBgMjBgIHN0YXlzIGAyMGAsIG5vdCBgMjAuMC4wYCkuXG4gKi9cbmNvbnN0IG5vZGVWZXJzaW9uU3RyaW5nU2NoZW1hID0gei5zdHJpbmcoKS5yZWZpbmUoXG4gIChzKSA9PiBjb2VyY2VWYWxpZFNlbXZlcihzKSAhPSBudWxsLFxuICB7IG1lc3NhZ2U6ICdNdXN0IGJlIGEgdmFsaWQgc2VtdmVyIG9yIGNvZXJjaWJsZSB0byBvbmUnIH0sXG4pO1xuY29uc3QgcG5wbVNldHRpbmdzU2NoZW1hID0gei5jdXN0b208UG5wbVdvcmtzcGFjZVNwZWNpZmljYXRpb24+KFxuICAodmFsdWUpID0+IHZhbHVlICE9IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSksXG4gIHsgbWVzc2FnZTogJ011c3QgYmUgYW4gb2JqZWN0JyB9LFxuKTtcblxuZnVuY3Rpb24gdmFsaWRhdGVOb2RlVmVyc2lvbk9yZGVyKG9wdHM6IHtcbiAgbWluTm9kZVZlcnNpb246IHN0cmluZztcbiAgbWF4Tm9kZVZlcnNpb246IHN0cmluZztcbiAgd29ya2Zsb3dOb2RlVmVyc2lvbjogc3RyaW5nO1xufSk6IGJvb2xlYW4ge1xuICBjb25zdCBtaW4gPSBjb2VyY2VWYWxpZFNlbXZlcihvcHRzLm1pbk5vZGVWZXJzaW9uKTtcbiAgY29uc3QgbWF4ID0gY29lcmNlVmFsaWRTZW12ZXIob3B0cy5tYXhOb2RlVmVyc2lvbik7XG4gIGNvbnN0IHdvcmtmbG93ID0gY29lcmNlVmFsaWRTZW12ZXIob3B0cy53b3JrZmxvd05vZGVWZXJzaW9uKTtcbiAgaWYgKG1pbiA9PSBudWxsIHx8IG1heCA9PSBudWxsIHx8IHdvcmtmbG93ID09IG51bGwpIHJldHVybiB0cnVlOyAvLyBsZXQgZmllbGQtbGV2ZWwgdmFsaWRhdGlvbiBoYW5kbGUgaW52YWxpZCBzZW12ZXJcbiAgcmV0dXJuIChcbiAgICBzZW12ZXIubHRlKG1pbiwgbWF4KSAmJlxuICAgIHNlbXZlci5sdGUobWluLCB3b3JrZmxvdykgJiZcbiAgICBzZW12ZXIubHRlKHdvcmtmbG93LCBtYXgpXG4gICk7XG59XG5cbi8qKiBPcHRpb25zIGZvciBhIHJlbGVhc2UgYnJhbmNoIChtYXRjaGVzIHByb2plbiBCcmFuY2hPcHRpb25zKSAqL1xuZXhwb3J0IGNvbnN0IGJyYW5jaE9wdGlvbnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHdvcmtmbG93TmFtZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBlbnZpcm9ubWVudDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtYWpvclZlcnNpb246IHBvc2l0aXZlSW50ZWdlcixcbiAgbWluTWFqb3JWZXJzaW9uOiBwb3NpdGl2ZUludGVnZXIub3B0aW9uYWwoKSxcbiAgbWlub3JWZXJzaW9uOiBwb3NpdGl2ZUludGVnZXIub3B0aW9uYWwoKSxcbiAgcHJlcmVsZWFzZTogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICB0YWdQcmVmaXg6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbnBtRGlzdFRhZzogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cblxuLyoqXG4gKiBOZWVkcyB0byBiZSBtYW51YWxseSB0eXBlZCBkdWUgdG8gSlNJSSBsaW1pdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbG1hQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICByZWFkb25seSBzdGFiaWxpdHk6IGNkay5TdGFiaWxpdHk7XG4gIHJlYWRvbmx5IG1ham9yVmVyc2lvbjogbnVtYmVyO1xuICByZWFkb25seSBhdXRob3I6IHN0cmluZztcbiAgcmVhZG9ubHkgYXV0aG9yQWRkcmVzczogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtleXdvcmRzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHJlcG9zaXRvcnlVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVsZWFzZUJyYW5jaGVzPzogUmVjb3JkPHN0cmluZywgQnJhbmNoT3B0aW9ucz47XG4gIHJlYWRvbmx5IHJlbGVhc2VFbnZpcm9ubWVudD86IHN0cmluZztcbiAgcmVhZG9ubHkgZGVwcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBkZXZEZXBzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGJ1bmRsZWREZXBzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1pbk5vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBtYXhOb2RlVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcG5wbVNldHRpbmdzPzogUG5wbVdvcmtzcGFjZVNwZWNpZmljYXRpb247XG4gIC8qKiBBcHBlbmRlZCB0byBnZW5lcmF0ZWQgYHNvbmFyLXByb2plY3QucHJvcGVydGllc2AgYWZ0ZXIgdGhlIGRlZmF1bHQgbGluZXMgKGUuZy4gU29uYXIgbXVsdGljcml0ZXJpYSBpZ25vcmVzKS4gKi9cbiAgcmVhZG9ubHkgc29uYXJQcm9qZWN0UHJvcGVydGllc0V4dHJhTGluZXM/OiBzdHJpbmdbXTtcbn1cblxuY29uc3QgTk9ERUpTX01JTl9WRVJTSU9OID0gJzIwJztcbmNvbnN0IE5PREVKU19NQVhfVkVSU0lPTiA9ICcyNCc7XG5cblxuLyoqIFByb2plbiBBd3NDZGtDb25zdHJ1Y3RMaWJyYXJ5IG9wdGlvbnMgd2l0aCB2YWxpZGF0aW9uIGFuZCBkZWZhdWx0cyAobWluL21heC93b3JrZmxvdyBOb2RlIHZlcnNpb25zLCBzY29wZWQgbmFtZSwgZXRjLikuICovXG4vLyBKU0lJIGNhbm5vdCBpbmZlciB0aGlzIHNjaGVtYSBzaGFwZSBjbGVhbmx5LCBzbyB3ZSBrZWVwIHRoZSBydW50aW1lIHNjaGVtYVxuLy8gYW5kIGl0cyBwdWJsaWMgb3B0aW9ucyBpbnRlcmZhY2UgYWxpZ25lZCBleHBsaWNpdGx5LlxuZXhwb3J0IGNvbnN0IGFsbWFDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9uc1NjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgc3RhYmlsaXR5OiB6LmVudW0oY2RrLlN0YWJpbGl0eSksXG4gICAgbWFqb3JWZXJzaW9uOiBwb3NpdGl2ZUludGVnZXIsXG4gICAgYXV0aG9yOiB6LnN0cmluZygpLFxuICAgIGF1dGhvckFkZHJlc3M6IHouZW1haWwoKSxcbiAgICBuYW1lOiBuYW1lU2NoZW1hLFxuICAgIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICAgIGtleXdvcmRzOiB6LmFycmF5KHouc3RyaW5nKCkpLmRlZmF1bHQoW10pLFxuICAgIHJlcG9zaXRvcnlVcmw6IHJlcG9zaXRvcnlVcmxTY2hlbWEsXG4gICAgcmVsZWFzZUJyYW5jaGVzOiB6LnJlY29yZCh6LnN0cmluZygpLCBicmFuY2hPcHRpb25zU2NoZW1hKS5vcHRpb25hbCgpLFxuICAgIHJlbGVhc2VFbnZpcm9ubWVudDogei5zdHJpbmcoKSxcbiAgICBkZXBzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgZGV2RGVwczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgIGJ1bmRsZWREZXBzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgbWluTm9kZVZlcnNpb246IG5vZGVWZXJzaW9uU3RyaW5nU2NoZW1hLmRlZmF1bHQoTk9ERUpTX01JTl9WRVJTSU9OKSxcbiAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBub2RlVmVyc2lvblN0cmluZ1NjaGVtYS5kZWZhdWx0KE5PREVKU19NQVhfVkVSU0lPTiksXG4gICAgbWF4Tm9kZVZlcnNpb246IG5vZGVWZXJzaW9uU3RyaW5nU2NoZW1hLmRlZmF1bHQoTk9ERUpTX01BWF9WRVJTSU9OKSxcbiAgICBwbnBtU2V0dGluZ3M6IHBucG1TZXR0aW5nc1NjaGVtYS5vcHRpb25hbCgpLFxuICAgIHNvbmFyUHJvamVjdFByb3BlcnRpZXNFeHRyYUxpbmVzOiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIH0pXG4gIC5yZWZpbmUodmFsaWRhdGVOb2RlVmVyc2lvbk9yZGVyLCB7XG4gICAgbWVzc2FnZTogJ05vZGUgdmVyc2lvbnMgbXVzdCBzYXRpc2Z5IG1pbiA8PSB3b3JrZmxvdyA8PSBtYXgnLFxuICB9KSBzYXRpc2ZpZXMgei5ab2RUeXBlPFBhcnRpYWw8YXdzY2RrLkF3c0Nka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPj4gJiB6LlpvZFR5cGU8QWxtYUNka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPjtcblxuIl19
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "devDependencies": {
14
14
  "@stylistic/eslint-plugin": "^2",
15
15
  "@types/jest": "^30",
16
- "@types/node": "^25.5.0",
16
+ "@types/node": "^20",
17
17
  "@types/semver": "^7",
18
18
  "@typescript-eslint/eslint-plugin": "^8",
19
19
  "@typescript-eslint/parser": "^8",
@@ -48,12 +48,15 @@
48
48
  "semver",
49
49
  "zod"
50
50
  ],
51
+ "engines": {
52
+ "node": ">= 20 <= 24"
53
+ },
51
54
  "main": "lib/index.js",
52
55
  "license": "Apache-2.0",
53
56
  "publishConfig": {
54
57
  "access": "public"
55
58
  },
56
- "version": "0.0.12",
59
+ "version": "0.0.14",
57
60
  "jest": {
58
61
  "coverageProvider": "v8",
59
62
  "testMatch": [
@@ -2,12 +2,239 @@
2
2
  * Fetches the pnpm-workspace JSON schema from SchemaStore and generates a .d.ts file.
3
3
  * Run via: pnpm exec ts-node scripts/generate-pnpm-workspace-types.ts
4
4
  */
5
- import { writeFileSync } from "fs";
6
- import { compile } from "json-schema-to-typescript";
7
- import { join } from "path";
5
+ import { writeFileSync } from 'fs';
6
+ import { compile } from 'json-schema-to-typescript';
7
+ import { join } from 'path';
8
8
 
9
- const SCHEMA_URL = "https://json.schemastore.org/pnpm-workspace.json";
10
- const OUTPUT_FILE = "AlmaCdkConstructLibrary/pnpm-workspace-schema.d.ts";
9
+ const SCHEMA_URL = 'https://json.schemastore.org/pnpm-workspace.json';
10
+ const OUTPUT_FILE = 'src/pnpm-workspace-schema.d.ts';
11
+
12
+ function addReadonlyToFields(typeDefinitions: string): string {
13
+ return typeDefinitions
14
+ .split('\n')
15
+ .map((line) =>
16
+ line
17
+ .replace(/^(\s+)(?!readonly\b)(\[[^\]]+\]:)/, '$1readonly $2')
18
+ .replace(
19
+ /^(\s+)(?!readonly\b)((?:["'][^"']+["']|[A-Za-z_$][\w$]*)\??:)/,
20
+ '$1readonly $2',
21
+ ),
22
+ )
23
+ .join('\n');
24
+ }
25
+
26
+ function makeJsiiCompatible(typeDefinitions: string): string {
27
+ return typeDefinitions
28
+ .replace(
29
+ ` readonly catalogs?: {
30
+ readonly [k: string]: Catalog;
31
+ } | null;`,
32
+ ' readonly catalogs?: Record<string, Catalog>;',
33
+ )
34
+ .replace(' readonly overrides?: {};', ' readonly overrides?: Record<string, string>;')
35
+ .replace(
36
+ ` readonly packageExtensions?: {
37
+ /**
38
+ * This interface was referenced by \`undefined\`'s JSON-Schema definition
39
+ * via the \`patternProperty\` "^.+$".
40
+ */
41
+ readonly [k: string]: {
42
+ readonly dependencies?: Dependency1;
43
+ readonly optionalDependencies?: OptionalDependency;
44
+ readonly peerDependencies?: PeerDependency;
45
+ readonly peerDependenciesMeta?: PeerDependencyMeta;
46
+ };
47
+ };`,
48
+ ' readonly packageExtensions?: Record<string, PackageExtension>;',
49
+ )
50
+ .replace(
51
+ ` readonly peerDependencyRules?: {
52
+ /**
53
+ * pnpm will not print warnings about missing peer dependencies from this list.
54
+ */
55
+ readonly ignoreMissing?: string[];
56
+ /**
57
+ * Unmet peer dependency warnings will not be printed for peer dependencies of the specified range.
58
+ */
59
+ readonly allowedVersions?: {};
60
+ /**
61
+ * Any peer dependency matching the pattern will be resolved from any version, regardless of the range specified in "peerDependencies".
62
+ */
63
+ readonly allowAny?: string[];
64
+ };`,
65
+ ' readonly peerDependencyRules?: PeerDependencyRules;',
66
+ )
67
+ .replace(
68
+ ` readonly allowedDeprecatedVersions?: {
69
+ readonly [k: string]: string;
70
+ };`,
71
+ ' readonly allowedDeprecatedVersions?: Record<string, string>;',
72
+ )
73
+ .replace(
74
+ ` readonly patchedDependencies?: {
75
+ readonly [k: string]: string;
76
+ };`,
77
+ ' readonly patchedDependencies?: Record<string, string>;',
78
+ )
79
+ .replace(
80
+ ` readonly updateConfig?: {
81
+ /**
82
+ * A list of packages that should be ignored when running "pnpm outdated" or "pnpm update --latest".
83
+ */
84
+ readonly ignoreDependencies?: string[];
85
+ };`,
86
+ ' readonly updateConfig?: UpdateConfig;',
87
+ )
88
+ .replace(
89
+ ' readonly configDependencies?: {};',
90
+ ' readonly configDependencies?: Record<string, string>;',
91
+ )
92
+ .replace(
93
+ ` readonly auditConfig?: {
94
+ /**
95
+ * A list of CVE IDs that will be ignored by "pnpm audit".
96
+ */
97
+ readonly ignoreCves?: string[];
98
+ /**
99
+ * A list of GHSA Codes that will be ignored by "pnpm audit".
100
+ */
101
+ readonly ignoreGhsas?: string[];
102
+ };`,
103
+ ' readonly auditConfig?: AuditConfig;',
104
+ )
105
+ .replace(
106
+ ` readonly supportedArchitectures?: {
107
+ readonly os?: string[];
108
+ readonly cpu?: string[];
109
+ readonly libc?: string[];
110
+ };`,
111
+ ' readonly supportedArchitectures?: SupportedArchitectures;',
112
+ )
113
+ .replace(
114
+ ` readonly executionEnv?: {
115
+ /**
116
+ * Specifies which exact Node.js version should be used for the project's runtime.
117
+ */
118
+ readonly nodeVersion?: string;
119
+ };`,
120
+ ' readonly executionEnv?: ExecutionEnv;',
121
+ )
122
+ .replace(
123
+ ' readonly mergeGitBranchLockfilesBranchPattern?: unknown[] | null;',
124
+ ' readonly mergeGitBranchLockfilesBranchPattern?: string[];',
125
+ )
126
+ .replace(
127
+ ' readonly allowBuilds?: {};',
128
+ ' readonly allowBuilds?: Record<string, boolean>;',
129
+ )
130
+ .replace(
131
+ `export type Dependency = {
132
+ readonly [k: string]: string;
133
+ } | null;`,
134
+ 'export type Dependency = Record<string, string>;',
135
+ )
136
+ .replace(
137
+ `/**
138
+ * Define dependency version ranges as reusable constants,
139
+ * for later reference in package.json files.
140
+ * This (singular) field creates a catalog named default.
141
+ *
142
+ */
143
+ export interface Catalog {
144
+ readonly [k: string]: string;
145
+ }
146
+ /**
147
+ * Dependencies are specified with a simple hash of package name to version range.
148
+ * The version range is a string which has one or more space-separated descriptors.
149
+ * Dependencies can also be identified with a tarball or git URL.
150
+ *
151
+ */
152
+ export interface Dependency1 {
153
+ readonly [k: string]: string;
154
+ }
155
+ /**
156
+ * Specifies dependencies that are optional for your project. These dependencies are attempted to be installed during the npm install process, but if they fail to install, the installation process will not fail.
157
+ */
158
+ export interface OptionalDependency {
159
+ readonly [k: string]: string;
160
+ }
161
+ /**
162
+ * Specifies dependencies that are required by the package but are expected to be provided by the consumer of the package.
163
+ */
164
+ export interface PeerDependency {
165
+ readonly [k: string]: string;
166
+ }
167
+ /**
168
+ * When a user installs your package, warnings are emitted if packages specified in "peerDependencies" are not already installed. The "peerDependenciesMeta" field serves to provide more information on how your peer dependencies are utilized. Most commonly, it allows peer dependencies to be marked as optional. Metadata for this field is specified with a simple hash of the package name to a metadata object.
169
+ */
170
+ export interface PeerDependencyMeta {
171
+ readonly [k: string]: {
172
+ /**
173
+ * Specifies that this peer dependency is optional and should not be installed automatically.
174
+ */
175
+ readonly optional?: boolean;
176
+ readonly [k: string]: unknown;
177
+ };
178
+ }
179
+ `,
180
+ `/**
181
+ * Define dependency version ranges as reusable constants,
182
+ * for later reference in package.json files.
183
+ * This (singular) field creates a catalog named default.
184
+ *
185
+ */
186
+ export type Catalog = Record<string, string>;
187
+ /**
188
+ * Dependencies are specified with a simple hash of package name to version range.
189
+ * The version range is a string which has one or more space-separated descriptors.
190
+ * Dependencies can also be identified with a tarball or git URL.
191
+ *
192
+ */
193
+ export type Dependency1 = Record<string, string>;
194
+ /**
195
+ * Specifies dependencies that are optional for your project. These dependencies are attempted to be installed during the npm install process, but if they fail to install, the installation process will not fail.
196
+ */
197
+ export type OptionalDependency = Record<string, string>;
198
+ /**
199
+ * Specifies dependencies that are required by the package but are expected to be provided by the consumer of the package.
200
+ */
201
+ export type PeerDependency = Record<string, string>;
202
+ export interface PackageExtension {
203
+ readonly dependencies?: Dependency1;
204
+ readonly optionalDependencies?: OptionalDependency;
205
+ readonly peerDependencies?: PeerDependency;
206
+ readonly peerDependenciesMeta?: PeerDependencyMeta;
207
+ }
208
+ export interface PeerDependencyRules {
209
+ readonly ignoreMissing?: string[];
210
+ readonly allowedVersions?: Record<string, string>;
211
+ readonly allowAny?: string[];
212
+ }
213
+ export interface UpdateConfig {
214
+ readonly ignoreDependencies?: string[];
215
+ }
216
+ export interface AuditConfig {
217
+ readonly ignoreCves?: string[];
218
+ readonly ignoreGhsas?: string[];
219
+ }
220
+ export interface SupportedArchitectures {
221
+ readonly os?: string[];
222
+ readonly cpu?: string[];
223
+ readonly libc?: string[];
224
+ }
225
+ export interface ExecutionEnv {
226
+ readonly nodeVersion?: string;
227
+ }
228
+ export interface PeerDependencyMetaValue {
229
+ readonly optional?: boolean;
230
+ }
231
+ /**
232
+ * When a user installs your package, warnings are emitted if packages specified in "peerDependencies" are not already installed. The "peerDependenciesMeta" field serves to provide more information on how your peer dependencies are utilized. Most commonly, it allows peer dependencies to be marked as optional. Metadata for this field is specified with a simple hash of the package name to a metadata object.
233
+ */
234
+ export type PeerDependencyMeta = Record<string, PeerDependencyMetaValue>;
235
+ `,
236
+ );
237
+ }
11
238
 
12
239
  async function main(): Promise<void> {
13
240
  const res = await fetch(SCHEMA_URL);
@@ -15,15 +242,17 @@ async function main(): Promise<void> {
15
242
  throw new Error(`Failed to fetch schema: ${res.status} ${res.statusText}`);
16
243
  }
17
244
  const schema = (await res.json()) as object;
18
- const ts = await compile(schema, "PnpmWorkspace", {
245
+ const ts = await compile(schema, 'PnpmWorkspaceSpecification', {
19
246
  bannerComment: `/**
20
247
  * TypeScript definitions for pnpm-workspace.yaml (JSON Schema from ${SCHEMA_URL})
21
248
  * DO NOT EDIT BY HAND. Run \`pnpm run generate:pnpm-workspace-types\` to regenerate.
22
249
  */`,
23
250
  additionalProperties: false,
24
251
  });
252
+ const readonlyTs = addReadonlyToFields(ts);
253
+ const jsiiCompatibleTs = makeJsiiCompatible(readonlyTs);
25
254
  const outPath = join(process.cwd(), OUTPUT_FILE);
26
- writeFileSync(outPath, ts, "utf8");
255
+ writeFileSync(outPath, jsiiCompatibleTs, 'utf8');
27
256
  console.log(`Wrote ${outPath}`);
28
257
  }
29
258