@cdktn/commons 0.25.0-pre.32 → 0.25.0-pre.37

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/build/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from "./gradle";
8
8
  export * from "./logging";
9
9
  export * from "./module-schema";
10
10
  export * from "./provider-schema";
11
+ export * from "./registry";
11
12
  export * from "./terraform-module";
12
13
  export * from "./terraform";
13
14
  export * from "./util";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
package/build/index.js CHANGED
@@ -26,8 +26,9 @@ __exportStar(require("./gradle"), exports);
26
26
  __exportStar(require("./logging"), exports);
27
27
  __exportStar(require("./module-schema"), exports);
28
28
  __exportStar(require("./provider-schema"), exports);
29
+ __exportStar(require("./registry"), exports);
29
30
  __exportStar(require("./terraform-module"), exports);
30
31
  __exportStar(require("./terraform"), exports);
31
32
  __exportStar(require("./util"), exports);
32
33
  __exportStar(require("./version"), exports);
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsK0NBQTZCO0FBQzdCLDJEQUF5QztBQUN6QywyQ0FBeUI7QUFDekIsMENBQXdCO0FBQ3hCLGdEQUE4QjtBQUM5QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsb0RBQWtDO0FBQ2xDLHFEQUFtQztBQUNuQyw4Q0FBNEI7QUFDNUIseUNBQXVCO0FBQ3ZCLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmV4cG9ydCAqIGZyb20gXCIuL2NoZWNrcG9pbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0cnVjdC1tYWtlci10YXJnZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVidWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vudmlyb25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lcnJvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2dyYWRsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbG9nZ2luZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kdWxlLXNjaGVtYVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvdmlkZXItc2NoZW1hXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYWZvcm0tbW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXJyYWZvcm1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnNpb25cIjtcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsK0NBQTZCO0FBQzdCLDJEQUF5QztBQUN6QywyQ0FBeUI7QUFDekIsMENBQXdCO0FBQ3hCLGdEQUE4QjtBQUM5QiwyQ0FBeUI7QUFDekIsMkNBQXlCO0FBQ3pCLDRDQUEwQjtBQUMxQixrREFBZ0M7QUFDaEMsb0RBQWtDO0FBQ2xDLDZDQUEyQjtBQUMzQixxREFBbUM7QUFDbkMsOENBQTRCO0FBQzVCLHlDQUF1QjtBQUN2Qiw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5leHBvcnQgKiBmcm9tIFwiLi9jaGVja3BvaW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdHJ1Y3QtbWFrZXItdGFyZ2V0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlYnVnXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9lbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ncmFkbGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvZ2dpbmdcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZHVsZS1zY2hlbWFcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVyLXNjaGVtYVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVnaXN0cnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybS1tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlcnJhZm9ybVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmVyc2lvblwiO1xuIl19
@@ -0,0 +1,25 @@
1
+ import { TerraformTargetVersions } from "./config";
2
+ /** A provider registry and the URL shapes that go with it. */
3
+ export interface Registry {
4
+ /** Hostname used to resolve providers declared without one. */
5
+ readonly hostname: string;
6
+ /** Where to send a user looking for available providers. */
7
+ readonly browseUrl: string;
8
+ /**
9
+ * Documentation link for one generated construct. `kind` "provider" ignores
10
+ * `name`. Returns the provider page when the registry has no page for the
11
+ * kind, which is the case for OpenTofu and ephemeral resources.
12
+ */
13
+ docsUrl(namespace: string, provider: string, version: string, kind: "provider" | "resource" | "data-source" | "ephemeral-resource", name?: string): string;
14
+ }
15
+ export declare const TERRAFORM_REGISTRY: Registry;
16
+ export declare const OPENTOFU_REGISTRY: Registry;
17
+ /**
18
+ * The registry a project targets, from its declared `targetVersions`.
19
+ *
20
+ * OpenTofu only when it is the sole declared product. Declaring both, or
21
+ * declaring nothing (DEFAULT_TARGET_VERSIONS declares both), gives Terraform -
22
+ * so output does not depend on which CLI happened to run.
23
+ */
24
+ export declare function registryForTargetVersions(targetVersions?: TerraformTargetVersions): Registry;
25
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,oBAAoB,EACpE,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAAC;CACX;AAED,eAAO,MAAM,kBAAkB,EAAE,QAgBhC,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,QAe/B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,cAAc,CAAC,EAAE,uBAAuB,GACvC,QAAQ,CAKV"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPENTOFU_REGISTRY = exports.TERRAFORM_REGISTRY = void 0;
4
+ exports.registryForTargetVersions = registryForTargetVersions;
5
+ exports.TERRAFORM_REGISTRY = {
6
+ hostname: "registry.terraform.io",
7
+ browseUrl: "https://registry.terraform.io/browse/providers",
8
+ docsUrl(namespace, provider, version, kind, name) {
9
+ const base = `https://registry.terraform.io/providers/${namespace}/${provider}/${version}/docs`;
10
+ switch (kind) {
11
+ case "provider":
12
+ return base;
13
+ case "resource":
14
+ return `${base}/resources/${name}`;
15
+ case "data-source":
16
+ return `${base}/data-sources/${name}`;
17
+ case "ephemeral-resource":
18
+ return `${base}/ephemeral-resources/${name}`;
19
+ }
20
+ },
21
+ };
22
+ // Paths follow getDocumentationUrl.ts in opentofu/registry-ui: /provider/
23
+ // singular, a v-prefixed version, and "datasources" unhyphenated. That UI has
24
+ // no ephemeral-resource route yet (opentofu/registry-ui#348), so those fall
25
+ // back to the provider page.
26
+ exports.OPENTOFU_REGISTRY = {
27
+ hostname: "registry.opentofu.org",
28
+ browseUrl: "https://search.opentofu.org/providers",
29
+ docsUrl(namespace, provider, version, kind, name) {
30
+ const base = `https://search.opentofu.org/provider/${namespace}/${provider}/v${version}/docs`;
31
+ switch (kind) {
32
+ case "provider":
33
+ case "ephemeral-resource":
34
+ return base;
35
+ case "resource":
36
+ return `${base}/resources/${name}`;
37
+ case "data-source":
38
+ return `${base}/datasources/${name}`;
39
+ }
40
+ },
41
+ };
42
+ /**
43
+ * The registry a project targets, from its declared `targetVersions`.
44
+ *
45
+ * OpenTofu only when it is the sole declared product. Declaring both, or
46
+ * declaring nothing (DEFAULT_TARGET_VERSIONS declares both), gives Terraform -
47
+ * so output does not depend on which CLI happened to run.
48
+ */
49
+ function registryForTargetVersions(targetVersions) {
50
+ const opentofuOnly = (targetVersions === null || targetVersions === void 0 ? void 0 : targetVersions.opentofu) !== undefined &&
51
+ (targetVersions === null || targetVersions === void 0 ? void 0 : targetVersions.terraform) === undefined;
52
+ return opentofuOnly ? exports.OPENTOFU_REGISTRY : exports.TERRAFORM_REGISTRY;
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBc0VBLDhEQU9DO0FBckRZLFFBQUEsa0JBQWtCLEdBQWE7SUFDMUMsUUFBUSxFQUFFLHVCQUF1QjtJQUNqQyxTQUFTLEVBQUUsZ0RBQWdEO0lBQzNELE9BQU8sQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSTtRQUM5QyxNQUFNLElBQUksR0FBRywyQ0FBMkMsU0FBUyxJQUFJLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQztRQUNoRyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxVQUFVO2dCQUNiLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxVQUFVO2dCQUNiLE9BQU8sR0FBRyxJQUFJLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDckMsS0FBSyxhQUFhO2dCQUNoQixPQUFPLEdBQUcsSUFBSSxpQkFBaUIsSUFBSSxFQUFFLENBQUM7WUFDeEMsS0FBSyxvQkFBb0I7Z0JBQ3ZCLE9BQU8sR0FBRyxJQUFJLHdCQUF3QixJQUFJLEVBQUUsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFFRiwwRUFBMEU7QUFDMUUsOEVBQThFO0FBQzlFLDRFQUE0RTtBQUM1RSw2QkFBNkI7QUFDaEIsUUFBQSxpQkFBaUIsR0FBYTtJQUN6QyxRQUFRLEVBQUUsdUJBQXVCO0lBQ2pDLFNBQVMsRUFBRSx1Q0FBdUM7SUFDbEQsT0FBTyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJO1FBQzlDLE1BQU0sSUFBSSxHQUFHLHdDQUF3QyxTQUFTLElBQUksUUFBUSxLQUFLLE9BQU8sT0FBTyxDQUFDO1FBQzlGLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLG9CQUFvQjtnQkFDdkIsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxHQUFHLElBQUksY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUNyQyxLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sR0FBRyxJQUFJLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxTQUFnQix5QkFBeUIsQ0FDdkMsY0FBd0M7SUFFeEMsTUFBTSxZQUFZLEdBQ2hCLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLFFBQVEsTUFBSyxTQUFTO1FBQ3RDLENBQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLFNBQVMsTUFBSyxTQUFTLENBQUM7SUFDMUMsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLHlCQUFpQixDQUFDLENBQUMsQ0FBQywwQkFBa0IsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbi8qKiBBIHByb3ZpZGVyIHJlZ2lzdHJ5IGFuZCB0aGUgVVJMIHNoYXBlcyB0aGF0IGdvIHdpdGggaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJ5IHtcbiAgLyoqIEhvc3RuYW1lIHVzZWQgdG8gcmVzb2x2ZSBwcm92aWRlcnMgZGVjbGFyZWQgd2l0aG91dCBvbmUuICovXG4gIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0byBzZW5kIGEgdXNlciBsb29raW5nIGZvciBhdmFpbGFibGUgcHJvdmlkZXJzLiAqL1xuICByZWFkb25seSBicm93c2VVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3VtZW50YXRpb24gbGluayBmb3Igb25lIGdlbmVyYXRlZCBjb25zdHJ1Y3QuIGBraW5kYCBcInByb3ZpZGVyXCIgaWdub3Jlc1xuICAgKiBgbmFtZWAuIFJldHVybnMgdGhlIHByb3ZpZGVyIHBhZ2Ugd2hlbiB0aGUgcmVnaXN0cnkgaGFzIG5vIHBhZ2UgZm9yIHRoZVxuICAgKiBraW5kLCB3aGljaCBpcyB0aGUgY2FzZSBmb3IgT3BlblRvZnUgYW5kIGVwaGVtZXJhbCByZXNvdXJjZXMuXG4gICAqL1xuICBkb2NzVXJsKFxuICAgIG5hbWVzcGFjZTogc3RyaW5nLFxuICAgIHByb3ZpZGVyOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIGtpbmQ6IFwicHJvdmlkZXJcIiB8IFwicmVzb3VyY2VcIiB8IFwiZGF0YS1zb3VyY2VcIiB8IFwiZXBoZW1lcmFsLXJlc291cmNlXCIsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgKTogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVEVSUkFGT1JNX1JFR0lTVFJZOiBSZWdpc3RyeSA9IHtcbiAgaG9zdG5hbWU6IFwicmVnaXN0cnkudGVycmFmb3JtLmlvXCIsXG4gIGJyb3dzZVVybDogXCJodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9icm93c2UvcHJvdmlkZXJzXCIsXG4gIGRvY3NVcmwobmFtZXNwYWNlLCBwcm92aWRlciwgdmVyc2lvbiwga2luZCwgbmFtZSkge1xuICAgIGNvbnN0IGJhc2UgPSBgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzLyR7bmFtZXNwYWNlfS8ke3Byb3ZpZGVyfS8ke3ZlcnNpb259L2RvY3NgO1xuICAgIHN3aXRjaCAoa2luZCkge1xuICAgICAgY2FzZSBcInByb3ZpZGVyXCI6XG4gICAgICAgIHJldHVybiBiYXNlO1xuICAgICAgY2FzZSBcInJlc291cmNlXCI6XG4gICAgICAgIHJldHVybiBgJHtiYXNlfS9yZXNvdXJjZXMvJHtuYW1lfWA7XG4gICAgICBjYXNlIFwiZGF0YS1zb3VyY2VcIjpcbiAgICAgICAgcmV0dXJuIGAke2Jhc2V9L2RhdGEtc291cmNlcy8ke25hbWV9YDtcbiAgICAgIGNhc2UgXCJlcGhlbWVyYWwtcmVzb3VyY2VcIjpcbiAgICAgICAgcmV0dXJuIGAke2Jhc2V9L2VwaGVtZXJhbC1yZXNvdXJjZXMvJHtuYW1lfWA7XG4gICAgfVxuICB9LFxufTtcblxuLy8gUGF0aHMgZm9sbG93IGdldERvY3VtZW50YXRpb25VcmwudHMgaW4gb3BlbnRvZnUvcmVnaXN0cnktdWk6IC9wcm92aWRlci9cbi8vIHNpbmd1bGFyLCBhIHYtcHJlZml4ZWQgdmVyc2lvbiwgYW5kIFwiZGF0YXNvdXJjZXNcIiB1bmh5cGhlbmF0ZWQuIFRoYXQgVUkgaGFzXG4vLyBubyBlcGhlbWVyYWwtcmVzb3VyY2Ugcm91dGUgeWV0IChvcGVudG9mdS9yZWdpc3RyeS11aSMzNDgpLCBzbyB0aG9zZSBmYWxsXG4vLyBiYWNrIHRvIHRoZSBwcm92aWRlciBwYWdlLlxuZXhwb3J0IGNvbnN0IE9QRU5UT0ZVX1JFR0lTVFJZOiBSZWdpc3RyeSA9IHtcbiAgaG9zdG5hbWU6IFwicmVnaXN0cnkub3BlbnRvZnUub3JnXCIsXG4gIGJyb3dzZVVybDogXCJodHRwczovL3NlYXJjaC5vcGVudG9mdS5vcmcvcHJvdmlkZXJzXCIsXG4gIGRvY3NVcmwobmFtZXNwYWNlLCBwcm92aWRlciwgdmVyc2lvbiwga2luZCwgbmFtZSkge1xuICAgIGNvbnN0IGJhc2UgPSBgaHR0cHM6Ly9zZWFyY2gub3BlbnRvZnUub3JnL3Byb3ZpZGVyLyR7bmFtZXNwYWNlfS8ke3Byb3ZpZGVyfS92JHt2ZXJzaW9ufS9kb2NzYDtcbiAgICBzd2l0Y2ggKGtpbmQpIHtcbiAgICAgIGNhc2UgXCJwcm92aWRlclwiOlxuICAgICAgY2FzZSBcImVwaGVtZXJhbC1yZXNvdXJjZVwiOlxuICAgICAgICByZXR1cm4gYmFzZTtcbiAgICAgIGNhc2UgXCJyZXNvdXJjZVwiOlxuICAgICAgICByZXR1cm4gYCR7YmFzZX0vcmVzb3VyY2VzLyR7bmFtZX1gO1xuICAgICAgY2FzZSBcImRhdGEtc291cmNlXCI6XG4gICAgICAgIHJldHVybiBgJHtiYXNlfS9kYXRhc291cmNlcy8ke25hbWV9YDtcbiAgICB9XG4gIH0sXG59O1xuXG4vKipcbiAqIFRoZSByZWdpc3RyeSBhIHByb2plY3QgdGFyZ2V0cywgZnJvbSBpdHMgZGVjbGFyZWQgYHRhcmdldFZlcnNpb25zYC5cbiAqXG4gKiBPcGVuVG9mdSBvbmx5IHdoZW4gaXQgaXMgdGhlIHNvbGUgZGVjbGFyZWQgcHJvZHVjdC4gRGVjbGFyaW5nIGJvdGgsIG9yXG4gKiBkZWNsYXJpbmcgbm90aGluZyAoREVGQVVMVF9UQVJHRVRfVkVSU0lPTlMgZGVjbGFyZXMgYm90aCksIGdpdmVzIFRlcnJhZm9ybSAtXG4gKiBzbyBvdXRwdXQgZG9lcyBub3QgZGVwZW5kIG9uIHdoaWNoIENMSSBoYXBwZW5lZCB0byBydW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RyeUZvclRhcmdldFZlcnNpb25zKFxuICB0YXJnZXRWZXJzaW9ucz86IFRlcnJhZm9ybVRhcmdldFZlcnNpb25zLFxuKTogUmVnaXN0cnkge1xuICBjb25zdCBvcGVudG9mdU9ubHkgPVxuICAgIHRhcmdldFZlcnNpb25zPy5vcGVudG9mdSAhPT0gdW5kZWZpbmVkICYmXG4gICAgdGFyZ2V0VmVyc2lvbnM/LnRlcnJhZm9ybSA9PT0gdW5kZWZpbmVkO1xuICByZXR1cm4gb3BlbnRvZnVPbmx5ID8gT1BFTlRPRlVfUkVHSVNUUlkgOiBURVJSQUZPUk1fUkVHSVNUUlk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../src/registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // Copyright (c) HashiCorp, Inc
4
+ // SPDX-License-Identifier: MPL-2.0
5
+ const registry_1 = require("./registry");
6
+ describe("registryForTargetVersions", () => {
7
+ it("uses OpenTofu only when it is the sole declared product", () => {
8
+ expect((0, registry_1.registryForTargetVersions)({ opentofu: ">=1.6.0" })).toBe(registry_1.OPENTOFU_REGISTRY);
9
+ });
10
+ it.each([
11
+ ["terraform only", { terraform: ">=1.5.7" }],
12
+ ["both declared", { terraform: ">=1.5.7", opentofu: ">=1.6.0" }],
13
+ ["nothing declared", undefined],
14
+ ])("uses Terraform for %s", (_name, targets) => {
15
+ expect((0, registry_1.registryForTargetVersions)(targets)).toBe(registry_1.TERRAFORM_REGISTRY);
16
+ });
17
+ });
18
+ describe("docsUrl", () => {
19
+ it("builds Terraform registry paths", () => {
20
+ const r = registry_1.TERRAFORM_REGISTRY;
21
+ expect(r.docsUrl("hashicorp", "random", "3.7.2", "provider")).toBe("https://registry.terraform.io/providers/hashicorp/random/3.7.2/docs");
22
+ expect(r.docsUrl("hashicorp", "random", "3.7.2", "resource", "password")).toBe("https://registry.terraform.io/providers/hashicorp/random/3.7.2/docs/resources/password");
23
+ expect(r.docsUrl("hashicorp", "local", "2.5.2", "data-source", "file")).toBe("https://registry.terraform.io/providers/hashicorp/local/2.5.2/docs/data-sources/file");
24
+ });
25
+ // Shapes follow getDocumentationUrl.ts in opentofu/registry-ui.
26
+ it("builds OpenTofu registry paths", () => {
27
+ const r = registry_1.OPENTOFU_REGISTRY;
28
+ expect(r.docsUrl("hashicorp", "random", "3.7.2", "provider")).toBe("https://search.opentofu.org/provider/hashicorp/random/v3.7.2/docs");
29
+ expect(r.docsUrl("hashicorp", "random", "3.7.2", "resource", "password")).toBe("https://search.opentofu.org/provider/hashicorp/random/v3.7.2/docs/resources/password");
30
+ expect(r.docsUrl("hashicorp", "local", "2.5.2", "data-source", "file")).toBe("https://search.opentofu.org/provider/hashicorp/local/v2.5.2/docs/datasources/file");
31
+ });
32
+ // TODO(#444): drop the fallback once opentofu/registry-ui#348 ships an
33
+ // ephemeral-resource route; this assertion is what will fail when it does.
34
+ it("falls back to the provider page for OpenTofu ephemeral resources", () => {
35
+ expect(registry_1.OPENTOFU_REGISTRY.docsUrl("hashicorp", "random", "3.7.2", "ephemeral-resource", "password")).toBe("https://search.opentofu.org/provider/hashicorp/random/v3.7.2/docs");
36
+ });
37
+ });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWdpc3RyeS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx5Q0FJb0I7QUFFcEIsUUFBUSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxFQUFFLENBQUMseURBQXlELEVBQUUsR0FBRyxFQUFFO1FBQ2pFLE1BQU0sQ0FBQyxJQUFBLG9DQUF5QixFQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdELDRCQUFpQixDQUNsQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQ04sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUM1QyxDQUFDLGVBQWUsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2hFLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDO0tBQ2hDLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3QyxNQUFNLENBQUMsSUFBQSxvQ0FBeUIsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBa0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtJQUN2QixFQUFFLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLDZCQUFrQixDQUFDO1FBQzdCLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRSxxRUFBcUUsQ0FDdEUsQ0FBQztRQUNGLE1BQU0sQ0FDSixDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FDbEUsQ0FBQyxJQUFJLENBQ0osd0ZBQXdGLENBQ3pGLENBQUM7UUFDRixNQUFNLENBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQ2hFLENBQUMsSUFBSSxDQUNKLHNGQUFzRixDQUN2RixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxnRUFBZ0U7SUFDaEUsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtRQUN4QyxNQUFNLENBQUMsR0FBRyw0QkFBaUIsQ0FBQztRQUM1QixNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEUsbUVBQW1FLENBQ3BFLENBQUM7UUFDRixNQUFNLENBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQ2xFLENBQUMsSUFBSSxDQUNKLHNGQUFzRixDQUN2RixDQUFDO1FBQ0YsTUFBTSxDQUNKLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUNoRSxDQUFDLElBQUksQ0FDSixtRkFBbUYsQ0FDcEYsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsdUVBQXVFO0lBQ3ZFLDJFQUEyRTtJQUMzRSxFQUFFLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO1FBQzFFLE1BQU0sQ0FDSiw0QkFBaUIsQ0FBQyxPQUFPLENBQ3ZCLFdBQVcsRUFDWCxRQUFRLEVBQ1IsT0FBTyxFQUNQLG9CQUFvQixFQUNwQixVQUFVLENBQ1gsQ0FDRixDQUFDLElBQUksQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IHtcbiAgT1BFTlRPRlVfUkVHSVNUUlksXG4gIFRFUlJBRk9STV9SRUdJU1RSWSxcbiAgcmVnaXN0cnlGb3JUYXJnZXRWZXJzaW9ucyxcbn0gZnJvbSBcIi4vcmVnaXN0cnlcIjtcblxuZGVzY3JpYmUoXCJyZWdpc3RyeUZvclRhcmdldFZlcnNpb25zXCIsICgpID0+IHtcbiAgaXQoXCJ1c2VzIE9wZW5Ub2Z1IG9ubHkgd2hlbiBpdCBpcyB0aGUgc29sZSBkZWNsYXJlZCBwcm9kdWN0XCIsICgpID0+IHtcbiAgICBleHBlY3QocmVnaXN0cnlGb3JUYXJnZXRWZXJzaW9ucyh7IG9wZW50b2Z1OiBcIj49MS42LjBcIiB9KSkudG9CZShcbiAgICAgIE9QRU5UT0ZVX1JFR0lTVFJZLFxuICAgICk7XG4gIH0pO1xuXG4gIGl0LmVhY2goW1xuICAgIFtcInRlcnJhZm9ybSBvbmx5XCIsIHsgdGVycmFmb3JtOiBcIj49MS41LjdcIiB9XSxcbiAgICBbXCJib3RoIGRlY2xhcmVkXCIsIHsgdGVycmFmb3JtOiBcIj49MS41LjdcIiwgb3BlbnRvZnU6IFwiPj0xLjYuMFwiIH1dLFxuICAgIFtcIm5vdGhpbmcgZGVjbGFyZWRcIiwgdW5kZWZpbmVkXSxcbiAgXSkoXCJ1c2VzIFRlcnJhZm9ybSBmb3IgJXNcIiwgKF9uYW1lLCB0YXJnZXRzKSA9PiB7XG4gICAgZXhwZWN0KHJlZ2lzdHJ5Rm9yVGFyZ2V0VmVyc2lvbnModGFyZ2V0cykpLnRvQmUoVEVSUkFGT1JNX1JFR0lTVFJZKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJkb2NzVXJsXCIsICgpID0+IHtcbiAgaXQoXCJidWlsZHMgVGVycmFmb3JtIHJlZ2lzdHJ5IHBhdGhzXCIsICgpID0+IHtcbiAgICBjb25zdCByID0gVEVSUkFGT1JNX1JFR0lTVFJZO1xuICAgIGV4cGVjdChyLmRvY3NVcmwoXCJoYXNoaWNvcnBcIiwgXCJyYW5kb21cIiwgXCIzLjcuMlwiLCBcInByb3ZpZGVyXCIpKS50b0JlKFxuICAgICAgXCJodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3JhbmRvbS8zLjcuMi9kb2NzXCIsXG4gICAgKTtcbiAgICBleHBlY3QoXG4gICAgICByLmRvY3NVcmwoXCJoYXNoaWNvcnBcIiwgXCJyYW5kb21cIiwgXCIzLjcuMlwiLCBcInJlc291cmNlXCIsIFwicGFzc3dvcmRcIiksXG4gICAgKS50b0JlKFxuICAgICAgXCJodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL3JhbmRvbS8zLjcuMi9kb2NzL3Jlc291cmNlcy9wYXNzd29yZFwiLFxuICAgICk7XG4gICAgZXhwZWN0KFxuICAgICAgci5kb2NzVXJsKFwiaGFzaGljb3JwXCIsIFwibG9jYWxcIiwgXCIyLjUuMlwiLCBcImRhdGEtc291cmNlXCIsIFwiZmlsZVwiKSxcbiAgICApLnRvQmUoXG4gICAgICBcImh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvbG9jYWwvMi41LjIvZG9jcy9kYXRhLXNvdXJjZXMvZmlsZVwiLFxuICAgICk7XG4gIH0pO1xuXG4gIC8vIFNoYXBlcyBmb2xsb3cgZ2V0RG9jdW1lbnRhdGlvblVybC50cyBpbiBvcGVudG9mdS9yZWdpc3RyeS11aS5cbiAgaXQoXCJidWlsZHMgT3BlblRvZnUgcmVnaXN0cnkgcGF0aHNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IHIgPSBPUEVOVE9GVV9SRUdJU1RSWTtcbiAgICBleHBlY3Qoci5kb2NzVXJsKFwiaGFzaGljb3JwXCIsIFwicmFuZG9tXCIsIFwiMy43LjJcIiwgXCJwcm92aWRlclwiKSkudG9CZShcbiAgICAgIFwiaHR0cHM6Ly9zZWFyY2gub3BlbnRvZnUub3JnL3Byb3ZpZGVyL2hhc2hpY29ycC9yYW5kb20vdjMuNy4yL2RvY3NcIixcbiAgICApO1xuICAgIGV4cGVjdChcbiAgICAgIHIuZG9jc1VybChcImhhc2hpY29ycFwiLCBcInJhbmRvbVwiLCBcIjMuNy4yXCIsIFwicmVzb3VyY2VcIiwgXCJwYXNzd29yZFwiKSxcbiAgICApLnRvQmUoXG4gICAgICBcImh0dHBzOi8vc2VhcmNoLm9wZW50b2Z1Lm9yZy9wcm92aWRlci9oYXNoaWNvcnAvcmFuZG9tL3YzLjcuMi9kb2NzL3Jlc291cmNlcy9wYXNzd29yZFwiLFxuICAgICk7XG4gICAgZXhwZWN0KFxuICAgICAgci5kb2NzVXJsKFwiaGFzaGljb3JwXCIsIFwibG9jYWxcIiwgXCIyLjUuMlwiLCBcImRhdGEtc291cmNlXCIsIFwiZmlsZVwiKSxcbiAgICApLnRvQmUoXG4gICAgICBcImh0dHBzOi8vc2VhcmNoLm9wZW50b2Z1Lm9yZy9wcm92aWRlci9oYXNoaWNvcnAvbG9jYWwvdjIuNS4yL2RvY3MvZGF0YXNvdXJjZXMvZmlsZVwiLFxuICAgICk7XG4gIH0pO1xuXG4gIC8vIFRPRE8oIzQ0NCk6IGRyb3AgdGhlIGZhbGxiYWNrIG9uY2Ugb3BlbnRvZnUvcmVnaXN0cnktdWkjMzQ4IHNoaXBzIGFuXG4gIC8vIGVwaGVtZXJhbC1yZXNvdXJjZSByb3V0ZTsgdGhpcyBhc3NlcnRpb24gaXMgd2hhdCB3aWxsIGZhaWwgd2hlbiBpdCBkb2VzLlxuICBpdChcImZhbGxzIGJhY2sgdG8gdGhlIHByb3ZpZGVyIHBhZ2UgZm9yIE9wZW5Ub2Z1IGVwaGVtZXJhbCByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIE9QRU5UT0ZVX1JFR0lTVFJZLmRvY3NVcmwoXG4gICAgICAgIFwiaGFzaGljb3JwXCIsXG4gICAgICAgIFwicmFuZG9tXCIsXG4gICAgICAgIFwiMy43LjJcIixcbiAgICAgICAgXCJlcGhlbWVyYWwtcmVzb3VyY2VcIixcbiAgICAgICAgXCJwYXNzd29yZFwiLFxuICAgICAgKSxcbiAgICApLnRvQmUoXCJodHRwczovL3NlYXJjaC5vcGVudG9mdS5vcmcvcHJvdmlkZXIvaGFzaGljb3JwL3JhbmRvbS92My43LjIvZG9jc1wiKTtcbiAgfSk7XG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdktn/commons",
3
- "version": "0.25.0-pre.32",
3
+ "version": "0.25.0-pre.37",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -39,7 +39,7 @@
39
39
  "semver": "7.8.5",
40
40
  "strip-ansi": "6.0.1",
41
41
  "validator": "13.15.35",
42
- "cdktn": "0.25.0-pre.32"
42
+ "cdktn": "0.25.0-pre.37"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "22.20.1",