@cdktn/hcl2cdk 0.23.0-pre.7 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/ambient.d.ts +0 -1
  2. package/build/__tests__/coerceType.test.js +165 -0
  3. package/build/__tests__/expressionToTs.test.js +693 -0
  4. package/build/__tests__/expressions.test.js +415 -0
  5. package/build/__tests__/findExpressionType.test.js +105 -0
  6. package/build/__tests__/functions.test.js +605 -0
  7. package/build/__tests__/generation.test.js +45 -0
  8. package/build/__tests__/jsii-rosetta-workarounds.test.js +86 -0
  9. package/build/__tests__/partialCode.test.js +390 -0
  10. package/build/__tests__/terraformSchema.test.js +105 -0
  11. package/build/__tests__/testHelpers.js +16 -0
  12. package/build/coerceType.js +240 -0
  13. package/build/dynamic-blocks.js +44 -0
  14. package/build/expressions.js +633 -0
  15. package/build/function-bindings/functions.generated.js +1142 -0
  16. package/build/function-bindings/functions.js +73 -0
  17. package/{lib → build}/generation.js +4 -4
  18. package/{lib → build}/index.d.ts +2 -2
  19. package/build/index.js +364 -0
  20. package/build/iteration.js +87 -0
  21. package/build/jsii-rosetta-workarounds.js +126 -0
  22. package/build/partialCode.js +116 -0
  23. package/build/provider.js +40 -0
  24. package/build/references.js +141 -0
  25. package/build/schema.js +81 -0
  26. package/build/telemetryAllowList.json +24 -0
  27. package/build/terraformSchema.js +136 -0
  28. package/build/types.js +3 -0
  29. package/build/utils.js +25 -0
  30. package/build/variables.js +172 -0
  31. package/package.json +13 -14
  32. package/tsconfig.json +4 -2
  33. package/lib/__tests__/coerceType.test.js +0 -165
  34. package/lib/__tests__/expressionToTs.test.js +0 -693
  35. package/lib/__tests__/expressions.test.js +0 -415
  36. package/lib/__tests__/findExpressionType.test.js +0 -105
  37. package/lib/__tests__/functions.test.js +0 -605
  38. package/lib/__tests__/generation.test.js +0 -45
  39. package/lib/__tests__/jsii-rosetta-workarounds.test.js +0 -86
  40. package/lib/__tests__/partialCode.test.js +0 -390
  41. package/lib/__tests__/terraformSchema.test.js +0 -105
  42. package/lib/__tests__/testHelpers.js +0 -16
  43. package/lib/coerceType.js +0 -240
  44. package/lib/dynamic-blocks.js +0 -44
  45. package/lib/expressions.js +0 -634
  46. package/lib/function-bindings/functions.generated.js +0 -1142
  47. package/lib/function-bindings/functions.js +0 -73
  48. package/lib/index.js +0 -364
  49. package/lib/iteration.js +0 -87
  50. package/lib/jsii-rosetta-workarounds.js +0 -126
  51. package/lib/partialCode.js +0 -116
  52. package/lib/provider.js +0 -40
  53. package/lib/references.js +0 -141
  54. package/lib/schema.js +0 -81
  55. package/lib/terraformSchema.js +0 -136
  56. package/lib/types.js +0 -3
  57. package/lib/utils.js +0 -25
  58. package/lib/variables.js +0 -172
  59. /package/{lib → build}/__tests__/coerceType.test.d.ts +0 -0
  60. /package/{lib → build}/__tests__/expressionToTs.test.d.ts +0 -0
  61. /package/{lib → build}/__tests__/expressions.test.d.ts +0 -0
  62. /package/{lib → build}/__tests__/findExpressionType.test.d.ts +0 -0
  63. /package/{lib → build}/__tests__/functions.test.d.ts +0 -0
  64. /package/{lib → build}/__tests__/generation.test.d.ts +0 -0
  65. /package/{lib → build}/__tests__/jsii-rosetta-workarounds.test.d.ts +0 -0
  66. /package/{lib → build}/__tests__/partialCode.test.d.ts +0 -0
  67. /package/{lib → build}/__tests__/terraformSchema.test.d.ts +0 -0
  68. /package/{lib → build}/__tests__/testHelpers.d.ts +0 -0
  69. /package/{lib → build}/coerceType.d.ts +0 -0
  70. /package/{lib → build}/dynamic-blocks.d.ts +0 -0
  71. /package/{lib → build}/expressions.d.ts +0 -0
  72. /package/{lib → build}/function-bindings/functions.d.ts +0 -0
  73. /package/{lib → build}/function-bindings/functions.generated.d.ts +0 -0
  74. /package/{lib → build}/generation.d.ts +0 -0
  75. /package/{lib → build}/iteration.d.ts +0 -0
  76. /package/{lib → build}/jsii-rosetta-workarounds.d.ts +0 -0
  77. /package/{lib → build}/partialCode.d.ts +0 -0
  78. /package/{lib → build}/provider.d.ts +0 -0
  79. /package/{lib → build}/references.d.ts +0 -0
  80. /package/{lib → build}/schema.d.ts +0 -0
  81. /package/{lib → build}/terraformSchema.d.ts +0 -0
  82. /package/{lib → build}/types.d.ts +0 -0
  83. /package/{lib → build}/utils.d.ts +0 -0
  84. /package/{lib → build}/variables.d.ts +0 -0
  85. /package/{lib → src}/telemetryAllowList.json +0 -0
package/lib/schema.js DELETED
@@ -1,81 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.schema = void 0;
27
- // Copyright (c) HashiCorp, Inc
28
- // SPDX-License-Identifier: MPL-2.0
29
- const z = __importStar(require("zod"));
30
- const tfObject = (config) => z.array(z.object(config).partial());
31
- const outputConfig = tfObject({
32
- value: z.any(),
33
- description: z.string().optional(),
34
- sensitive: z.boolean().optional(),
35
- depends_on: z.string().optional(),
36
- });
37
- const validationConfig = z.object({
38
- error_message: z.string(),
39
- condition: z.any(),
40
- });
41
- const variableConfig = tfObject({
42
- type: z.string(),
43
- default: z.any(),
44
- description: z.string(),
45
- sensitive: z.boolean(),
46
- nullable: z.boolean().optional(),
47
- validation: z.array(validationConfig).optional(),
48
- });
49
- const providerConfig = z.array(z.record(z.any()));
50
- const moduleConfig = z.array(z.object({ source: z.string() }).nonstrict());
51
- const resourceConfig = z.array(z.record(z.any()));
52
- const importConfig = z.object({
53
- to: z.string(),
54
- id: z.string(),
55
- provider: z.any().optional(),
56
- });
57
- const providerSpecification = z.union([
58
- z.object({ source: z.string(), version: z.string() }).partial(),
59
- z.string(),
60
- ]);
61
- const terraformConfig = z
62
- .object({
63
- required_version: z.string(),
64
- required_providers: z.array(z.record(providerSpecification)),
65
- backend: z.record(z.array(z.record(z.any()))),
66
- })
67
- .partial();
68
- exports.schema = z
69
- .object({
70
- data: z.record(z.record(resourceConfig)),
71
- import: z.array(importConfig),
72
- locals: z.array(z.record(z.any())),
73
- module: z.record(moduleConfig),
74
- output: z.record(outputConfig),
75
- provider: z.record(providerConfig),
76
- resource: z.record(z.record(resourceConfig)),
77
- terraform: z.array(terraformConfig),
78
- variable: z.record(variableConfig),
79
- })
80
- .partial();
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQStCO0FBQy9CLG1DQUFtQztBQUNuQyx1Q0FBeUI7QUFFekIsTUFBTSxRQUFRLEdBQUcsQ0FBMEIsTUFBUyxFQUFFLEVBQUUsQ0FDdEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFFdEMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQzVCLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFO0lBQ2QsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDbEMsQ0FBQyxDQUFDO0FBR0gsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hDLGFBQWEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ3pCLFNBQVMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFO0NBQ25CLENBQUMsQ0FBQztBQUVILE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQztJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNoQixPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRTtJQUNoQixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUN2QixTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRTtJQUN0QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUNqRCxDQUFDLENBQUM7QUFHSCxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUdsRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBRzNFLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBSWxELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDZCxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNkLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQztBQUdILE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7SUFDL0QsQ0FBQyxDQUFDLE1BQU0sRUFBRTtDQUNYLENBQUMsQ0FBQztBQUVILE1BQU0sZUFBZSxHQUFHLENBQUM7S0FDdEIsTUFBTSxDQUFDO0lBQ04sZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUM1QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM1RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUM5QyxDQUFDO0tBQ0QsT0FBTyxFQUFFLENBQUM7QUFHQSxRQUFBLE1BQU0sR0FBRyxDQUFDO0tBQ3BCLE1BQU0sQ0FBQztJQUNOLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzdCLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQzlCLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM5QixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7SUFDbEMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1QyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDbkMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO0NBQ25DLENBQUM7S0FDRCxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgKiBhcyB6IGZyb20gXCJ6b2RcIjtcblxuY29uc3QgdGZPYmplY3QgPSA8VCBleHRlbmRzIHouWm9kUmF3U2hhcGU+KGNvbmZpZzogVCkgPT5cbiAgei5hcnJheSh6Lm9iamVjdChjb25maWcpLnBhcnRpYWwoKSk7XG5cbmNvbnN0IG91dHB1dENvbmZpZyA9IHRmT2JqZWN0KHtcbiAgdmFsdWU6IHouYW55KCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHNlbnNpdGl2ZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgZGVwZW5kc19vbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBPdXRwdXQgPSB6LmluZmVyPHR5cGVvZiBvdXRwdXRDb25maWc+O1xuXG5jb25zdCB2YWxpZGF0aW9uQ29uZmlnID0gei5vYmplY3Qoe1xuICBlcnJvcl9tZXNzYWdlOiB6LnN0cmluZygpLFxuICBjb25kaXRpb246IHouYW55KCksXG59KTtcblxuY29uc3QgdmFyaWFibGVDb25maWcgPSB0Zk9iamVjdCh7XG4gIHR5cGU6IHouc3RyaW5nKCksXG4gIGRlZmF1bHQ6IHouYW55KCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLFxuICBzZW5zaXRpdmU6IHouYm9vbGVhbigpLFxuICBudWxsYWJsZTogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgdmFsaWRhdGlvbjogei5hcnJheSh2YWxpZGF0aW9uQ29uZmlnKS5vcHRpb25hbCgpLFxufSk7XG5leHBvcnQgdHlwZSBWYXJpYWJsZSA9IHouaW5mZXI8dHlwZW9mIHZhcmlhYmxlQ29uZmlnPjtcblxuY29uc3QgcHJvdmlkZXJDb25maWcgPSB6LmFycmF5KHoucmVjb3JkKHouYW55KCkpKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyID0gei5pbmZlcjx0eXBlb2YgcHJvdmlkZXJDb25maWc+O1xuXG5jb25zdCBtb2R1bGVDb25maWcgPSB6LmFycmF5KHoub2JqZWN0KHsgc291cmNlOiB6LnN0cmluZygpIH0pLm5vbnN0cmljdCgpKTtcbmV4cG9ydCB0eXBlIE1vZHVsZSA9IHouaW5mZXI8dHlwZW9mIG1vZHVsZUNvbmZpZz47XG5cbmNvbnN0IHJlc291cmNlQ29uZmlnID0gei5hcnJheSh6LnJlY29yZCh6LmFueSgpKSk7XG5leHBvcnQgdHlwZSBSZXNvdXJjZSA9IHouaW5mZXI8dHlwZW9mIHJlc291cmNlQ29uZmlnPjtcbmV4cG9ydCB0eXBlIERhdGEgPSBSZXNvdXJjZTtcblxuY29uc3QgaW1wb3J0Q29uZmlnID0gei5vYmplY3Qoe1xuICB0bzogei5zdHJpbmcoKSxcbiAgaWQ6IHouc3RyaW5nKCksXG4gIHByb3ZpZGVyOiB6LmFueSgpLm9wdGlvbmFsKCksXG59KTtcbmV4cG9ydCB0eXBlIEltcG9ydCA9IHouaW5mZXI8dHlwZW9mIGltcG9ydENvbmZpZz47XG5cbmNvbnN0IHByb3ZpZGVyU3BlY2lmaWNhdGlvbiA9IHoudW5pb24oW1xuICB6Lm9iamVjdCh7IHNvdXJjZTogei5zdHJpbmcoKSwgdmVyc2lvbjogei5zdHJpbmcoKSB9KS5wYXJ0aWFsKCksXG4gIHouc3RyaW5nKCksXG5dKTtcblxuY29uc3QgdGVycmFmb3JtQ29uZmlnID0gelxuICAub2JqZWN0KHtcbiAgICByZXF1aXJlZF92ZXJzaW9uOiB6LnN0cmluZygpLFxuICAgIHJlcXVpcmVkX3Byb3ZpZGVyczogei5hcnJheSh6LnJlY29yZChwcm92aWRlclNwZWNpZmljYXRpb24pKSxcbiAgICBiYWNrZW5kOiB6LnJlY29yZCh6LmFycmF5KHoucmVjb3JkKHouYW55KCkpKSksXG4gIH0pXG4gIC5wYXJ0aWFsKCk7XG5leHBvcnQgdHlwZSBUZXJyYWZvcm1Db25maWcgPSB6LmluZmVyPHR5cGVvZiB0ZXJyYWZvcm1Db25maWc+O1xuXG5leHBvcnQgY29uc3Qgc2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBkYXRhOiB6LnJlY29yZCh6LnJlY29yZChyZXNvdXJjZUNvbmZpZykpLFxuICAgIGltcG9ydDogei5hcnJheShpbXBvcnRDb25maWcpLFxuICAgIGxvY2Fsczogei5hcnJheSh6LnJlY29yZCh6LmFueSgpKSksXG4gICAgbW9kdWxlOiB6LnJlY29yZChtb2R1bGVDb25maWcpLFxuICAgIG91dHB1dDogei5yZWNvcmQob3V0cHV0Q29uZmlnKSxcbiAgICBwcm92aWRlcjogei5yZWNvcmQocHJvdmlkZXJDb25maWcpLFxuICAgIHJlc291cmNlOiB6LnJlY29yZCh6LnJlY29yZChyZXNvdXJjZUNvbmZpZykpLFxuICAgIHRlcnJhZm9ybTogei5hcnJheSh0ZXJyYWZvcm1Db25maWcpLFxuICAgIHZhcmlhYmxlOiB6LnJlY29yZCh2YXJpYWJsZUNvbmZpZyksXG4gIH0pXG4gIC5wYXJ0aWFsKCk7XG4iXX0=
@@ -1,136 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDesiredType = exports.isMapAttribute = exports.getTypeAtPath = void 0;
4
- const provider_1 = require("./provider");
5
- function getResourceAtPath(schema, path) {
6
- var _a;
7
- const parts = path.split(".");
8
- if (parts.length < 2) {
9
- // Too short to be a valid path
10
- return null;
11
- }
12
- const isDataSource = parts[0] === "data";
13
- if (isDataSource) {
14
- parts.shift();
15
- }
16
- const providerName = parts.shift();
17
- const resourceName = parts.shift();
18
- const fullProviderName = (0, provider_1.getFullProviderName)(schema, providerName);
19
- // Hack: In the case of 'external', the name of the data source 'external' doesn't have a prefix
20
- // so we repeat the name as both provider prefix and the data source name
21
- const fullResourceName = providerName === resourceName
22
- ? providerName
23
- : `${providerName}_${resourceName}`;
24
- if (!fullProviderName) {
25
- // No provider found with that name
26
- return null;
27
- }
28
- const provider = (_a = schema.provider_schemas) === null || _a === void 0 ? void 0 : _a[fullProviderName];
29
- if (!provider) {
30
- // Could not find provider
31
- return null;
32
- }
33
- if (resourceName.endsWith("Provider")) {
34
- // This is a provider
35
- return { resource: provider.provider, parts };
36
- }
37
- const resources = isDataSource
38
- ? provider.data_source_schemas
39
- : provider.resource_schemas;
40
- const resource = resources[fullResourceName];
41
- if (!resource) {
42
- // Could not find resource
43
- return null;
44
- }
45
- return { resource, parts };
46
- }
47
- function findType(item, parts) {
48
- if (!parts.length) {
49
- return item;
50
- }
51
- const [currentPart, ...otherParts] = parts;
52
- // Promitive attributes can be returned directly
53
- if (typeof item === "string") {
54
- return item;
55
- }
56
- // Complex attributes
57
- if (Array.isArray(item)) {
58
- if (item[0] === "set" || item[0] === "list") {
59
- if (currentPart === "[]") {
60
- return findType(item[1], otherParts);
61
- }
62
- // Trying to access a property on a list
63
- return null;
64
- }
65
- if (item[0] === "object") {
66
- if (currentPart === "[]") {
67
- // Trying to access a property on a list
68
- return null;
69
- }
70
- return findType(item[1][currentPart], otherParts);
71
- }
72
- if (item[0] === "map") {
73
- // We don't care what the key is
74
- return findType(item[1], otherParts);
75
- }
76
- // Unknown type
77
- return null;
78
- }
79
- // If we are not in an attribute, we can ignore the [] (since max_item=1 parts don't have [], so we just ignore it)
80
- if (currentPart === "[]") {
81
- return findType(item, otherParts);
82
- }
83
- // Block
84
- if (item.block) {
85
- // Find block type in block
86
- if (item.block.block_types) {
87
- const blockType = item.block.block_types[currentPart];
88
- if (blockType) {
89
- return findType(blockType, otherParts);
90
- }
91
- }
92
- // Find attribute in block
93
- if (item.block.attributes) {
94
- const attribute = item.block.attributes[currentPart];
95
- if (attribute && attribute.type) {
96
- return findType(attribute.type, otherParts);
97
- }
98
- }
99
- }
100
- // Could not find the type
101
- return null;
102
- }
103
- function getTypeAtPath(schema, path) {
104
- const resourceSchema = getResourceAtPath(schema, path);
105
- if (!resourceSchema) {
106
- return null;
107
- }
108
- const { resource, parts } = resourceSchema;
109
- return findType(resource, parts);
110
- }
111
- exports.getTypeAtPath = getTypeAtPath;
112
- const isMapAttribute = (attribute) => (Array.isArray(attribute) ? attribute[0] === "map" : false);
113
- exports.isMapAttribute = isMapAttribute;
114
- function getDesiredType(scope, path) {
115
- const attributeOrBlockType = getTypeAtPath(scope.providerSchema, path);
116
- // Attribute type is not defined
117
- if (!attributeOrBlockType) {
118
- return "dynamic";
119
- }
120
- // Primitive attribute type
121
- if (typeof attributeOrBlockType === "string") {
122
- return attributeOrBlockType;
123
- }
124
- // Complex attribute type
125
- if (Array.isArray(attributeOrBlockType)) {
126
- return attributeOrBlockType;
127
- }
128
- // Schema
129
- if ("version" in attributeOrBlockType) {
130
- return "dynamic";
131
- }
132
- // Block type
133
- return "dynamic";
134
- }
135
- exports.getDesiredType = getDesiredType;
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVycmFmb3JtU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVycmFmb3JtU2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVFBLHlDQUFpRDtBQUdqRCxTQUFTLGlCQUFpQixDQUFDLE1BQXNCLEVBQUUsSUFBWTs7SUFDN0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDckIsK0JBQStCO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDekMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQVksQ0FBQztJQUM3QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFZLENBQUM7SUFFN0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDhCQUFtQixFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNuRSxnR0FBZ0c7SUFDaEcseUVBQXlFO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQ3BCLFlBQVksS0FBSyxZQUFZO1FBQzNCLENBQUMsQ0FBQyxZQUFZO1FBQ2QsQ0FBQyxDQUFDLEdBQUcsWUFBWSxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXhDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RCLG1DQUFtQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsMENBQUcsZ0JBQWdCLENBQUMsQ0FBQztJQUU3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFD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LDJCQUEyQjtJQUMzQixJQUFJLE9BQU8sb0JBQW9CLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0MsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztJQUNULElBQUksU0FBUyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDdEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGFBQWE7SUFDYixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBNUJELHdDQTRCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQge1xuICBQcm92aWRlclNjaGVtYSxcbiAgQmxvY2tUeXBlLFxuICBBdHRyaWJ1dGVUeXBlLFxuICBTY2hlbWEsXG59IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgZ2V0RnVsbFByb3ZpZGVyTmFtZSB9IGZyb20gXCIuL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5mdW5jdGlvbiBnZXRSZXNvdXJjZUF0UGF0aChzY2hlbWE6IFByb3ZpZGVyU2NoZW1hLCBwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KFwiLlwiKTtcblxuICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xuICAgIC8vIFRvbyBzaG9ydCB0byBiZSBhIHZhbGlkIHBhdGhcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGlzRGF0YVNvdXJjZSA9IHBhcnRzWzBdID09PSBcImRhdGFcIjtcbiAgaWYgKGlzRGF0YVNvdXJjZSkge1xuICAgIHBhcnRzLnNoaWZ0KCk7XG4gIH1cblxuICBjb25zdCBwcm92aWRlck5hbWUgPSBwYXJ0cy5zaGlmdCgpIGFzIHN0cmluZztcbiAgY29uc3QgcmVzb3VyY2VOYW1lID0gcGFydHMuc2hpZnQoKSBhcyBzdHJpbmc7XG5cbiAgY29uc3QgZnVsbFByb3ZpZGVyTmFtZSA9IGdldEZ1bGxQcm92aWRlck5hbWUoc2NoZW1hLCBwcm92aWRlck5hbWUpO1xuICAvLyBIYWNrOiBJbiB0aGUgY2FzZSBvZiAnZXh0ZXJuYWwnLCB0aGUgbmFtZSBvZiB0aGUgZGF0YSBzb3VyY2UgJ2V4dGVybmFsJyBkb2Vzbid0IGhhdmUgYSBwcmVmaXhcbiAgLy8gc28gd2UgcmVwZWF0IHRoZSBuYW1lIGFzIGJvdGggcHJvdmlkZXIgcHJlZml4IGFuZCB0aGUgZGF0YSBzb3VyY2UgbmFtZVxuICBjb25zdCBmdWxsUmVzb3VyY2VOYW1lID1cbiAgICBwcm92aWRlck5hbWUgPT09IHJlc291cmNlTmFtZVxuICAgICAgPyBwcm92aWRlck5hbWVcbiAgICAgIDogYCR7cHJvdmlkZXJOYW1lfV8ke3Jlc291cmNlTmFtZX1gO1xuXG4gIGlmICghZnVsbFByb3ZpZGVyTmFtZSkge1xuICAgIC8vIE5vIHByb3ZpZGVyIGZvdW5kIHdpdGggdGhhdCBuYW1lXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBwcm92aWRlciA9IHNjaGVtYS5wcm92aWRlcl9zY2hlbWFzPy5bZnVsbFByb3ZpZGVyTmFtZV07XG5cbiAgaWYgKCFwcm92aWRlcikge1xuICAgIC8vIENvdWxkIG5vdCBmaW5kIHByb3ZpZGVyXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAocmVzb3VyY2VOYW1lLmVuZHNXaXRoKFwiUHJvdmlkZXJcIikpIHtcbiAgICAvLyBUaGlzIGlzIGEgcHJvdmlkZXJcbiAgICByZXR1cm4geyByZXNvdXJjZTogcHJvdmlkZXIucHJvdmlkZXIsIHBhcnRzIH07XG4gIH1cblxuICBjb25zdCByZXNvdXJjZXMgPSBpc0RhdGFTb3VyY2VcbiAgICA/IHByb3ZpZGVyLmRhdGFfc291cmNlX3NjaGVtYXNcbiAgICA6IHByb3ZpZGVyLnJlc291cmNlX3NjaGVtYXM7XG5cbiAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXNbZnVsbFJlc291cmNlTmFtZV07XG4gIGlmICghcmVzb3VyY2UpIHtcbiAgICAvLyBDb3VsZCBub3QgZmluZCByZXNvdXJjZVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHsgcmVzb3VyY2UsIHBhcnRzIH07XG59XG5cbmZ1bmN0aW9uIGZpbmRUeXBlKFxuICBpdGVtOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlLFxuICBwYXJ0czogc3RyaW5nW10sXG4pOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlIHwgbnVsbCB7XG4gIGlmICghcGFydHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBjb25zdCBbY3VycmVudFBhcnQsIC4uLm90aGVyUGFydHNdID0gcGFydHM7XG5cbiAgLy8gUHJvbWl0aXZlIGF0dHJpYnV0ZXMgY2FuIGJlIHJldHVybmVkIGRpcmVjdGx5XG4gIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgLy8gQ29tcGxleCBhdHRyaWJ1dGVzXG4gIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgaWYgKGl0ZW1bMF0gPT09IFwic2V0XCIgfHwgaXRlbVswXSA9PT0gXCJsaXN0XCIpIHtcbiAgICAgIGlmIChjdXJyZW50UGFydCA9PT0gXCJbXVwiKSB7XG4gICAgICAgIHJldHVybiBmaW5kVHlwZShpdGVtWzFdLCBvdGhlclBhcnRzKTtcbiAgICAgIH1cbiAgICAgIC8vIFRyeWluZyB0byBhY2Nlc3MgYSBwcm9wZXJ0eSBvbiBhIGxpc3RcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmIChpdGVtWzBdID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBpZiAoY3VycmVudFBhcnQgPT09IFwiW11cIikge1xuICAgICAgICAvLyBUcnlpbmcgdG8gYWNjZXNzIGEgcHJvcGVydHkgb24gYSBsaXN0XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmluZFR5cGUoaXRlbVsxXVtjdXJyZW50UGFydF0sIG90aGVyUGFydHMpO1xuICAgIH1cblxuICAgIGlmIChpdGVtWzBdID09PSBcIm1hcFwiKSB7XG4gICAgICAvLyBXZSBkb24ndCBjYXJlIHdoYXQgdGhlIGtleSBpc1xuICAgICAgcmV0dXJuIGZpbmRUeXBlKGl0ZW1bMV0sIG90aGVyUGFydHMpO1xuICAgIH1cblxuICAgIC8vIFVua25vd24gdHlwZVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gSWYgd2UgYXJlIG5vdCBpbiBhbiBhdHRyaWJ1dGUsIHdlIGNhbiBpZ25vcmUgdGhlIFtdIChzaW5jZSBtYXhfaXRlbT0xIHBhcnRzIGRvbid0IGhhdmUgW10sIHNvIHdlIGp1c3QgaWdub3JlIGl0KVxuICBpZiAoY3VycmVudFBhcnQgPT09IFwiW11cIikge1xuICAgIHJldHVybiBmaW5kVHlwZShpdGVtLCBvdGhlclBhcnRzKTtcbiAgfVxuXG4gIC8vIEJsb2NrXG4gIGlmIChpdGVtLmJsb2NrKSB7XG4gICAgLy8gRmluZCBibG9jayB0eXBlIGluIGJsb2NrXG4gICAgaWYgKGl0ZW0uYmxvY2suYmxvY2tfdHlwZXMpIHtcbiAgICAgIGNvbnN0IGJsb2NrVHlwZSA9IGl0ZW0uYmxvY2suYmxvY2tfdHlwZXNbY3VycmVudFBhcnRdO1xuICAgICAgaWYgKGJsb2NrVHlwZSkge1xuICAgICAgICByZXR1cm4gZmluZFR5cGUoYmxvY2tUeXBlLCBvdGhlclBhcnRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGaW5kIGF0dHJpYnV0ZSBpbiBibG9ja1xuICAgIGlmIChpdGVtLmJsb2NrLmF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGl0ZW0uYmxvY2suYXR0cmlidXRlc1tjdXJyZW50UGFydF07XG4gICAgICBpZiAoYXR0cmlidXRlICYmIGF0dHJpYnV0ZS50eXBlKSB7XG4gICAgICAgIHJldHVybiBmaW5kVHlwZShhdHRyaWJ1dGUudHlwZSwgb3RoZXJQYXJ0cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ291bGQgbm90IGZpbmQgdGhlIHR5cGVcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlQXRQYXRoKFxuICBzY2hlbWE6IFByb3ZpZGVyU2NoZW1hLFxuICBwYXRoOiBzdHJpbmcsXG4pOiBTY2hlbWEgfCBCbG9ja1R5cGUgfCBBdHRyaWJ1dGVUeXBlIHwgbnVsbCB7XG4gIGNvbnN0IHJlc291cmNlU2NoZW1hID0gZ2V0UmVzb3VyY2VBdFBhdGgoc2NoZW1hLCBwYXRoKTtcblxuICBpZiAoIXJlc291cmNlU2NoZW1hKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgeyByZXNvdXJjZSwgcGFydHMgfSA9IHJlc291cmNlU2NoZW1hO1xuICByZXR1cm4gZmluZFR5cGUocmVzb3VyY2UsIHBhcnRzKTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzTWFwQXR0cmlidXRlID0gKFxuICBhdHRyaWJ1dGU6IFNjaGVtYSB8IEF0dHJpYnV0ZVR5cGUgfCBCbG9ja1R5cGUgfCBudWxsLFxuKSA9PiAoQXJyYXkuaXNBcnJheShhdHRyaWJ1dGUpID8gYXR0cmlidXRlWzBdID09PSBcIm1hcFwiIDogZmFsc2UpO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzaXJlZFR5cGUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHBhdGg6IHN0cmluZyxcbik6IEF0dHJpYnV0ZVR5cGUge1xuICBjb25zdCBhdHRyaWJ1dGVPckJsb2NrVHlwZSA9IGdldFR5cGVBdFBhdGgoc2NvcGUucHJvdmlkZXJTY2hlbWEsIHBhdGgpO1xuXG4gIC8vIEF0dHJpYnV0ZSB0eXBlIGlzIG5vdCBkZWZpbmVkXG4gIGlmICghYXR0cmlidXRlT3JCbG9ja1R5cGUpIHtcbiAgICByZXR1cm4gXCJkeW5hbWljXCI7XG4gIH1cblxuICAvLyBQcmltaXRpdmUgYXR0cmlidXRlIHR5cGVcbiAgaWYgKHR5cGVvZiBhdHRyaWJ1dGVPckJsb2NrVHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIHJldHVybiBhdHRyaWJ1dGVPckJsb2NrVHlwZTtcbiAgfVxuXG4gIC8vIENvbXBsZXggYXR0cmlidXRlIHR5cGVcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXR0cmlidXRlT3JCbG9ja1R5cGUpKSB7XG4gICAgcmV0dXJuIGF0dHJpYnV0ZU9yQmxvY2tUeXBlO1xuICB9XG5cbiAgLy8gU2NoZW1hXG4gIGlmIChcInZlcnNpb25cIiBpbiBhdHRyaWJ1dGVPckJsb2NrVHlwZSkge1xuICAgIHJldHVybiBcImR5bmFtaWNcIjtcbiAgfVxuXG4gIC8vIEJsb2NrIHR5cGVcbiAgcmV0dXJuIFwiZHluYW1pY1wiO1xufVxuIl19
package/lib/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IFRlcnJhZm9ybVByb3ZpZGVyR2VuZXJhdG9yIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IFByb3ZpZGVyU2NoZW1hIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmV4cG9ydCB0eXBlIFRlcnJhZm9ybVJlc291cmNlQmxvY2sgPSB1bmtub3duO1xuZXhwb3J0IHR5cGUgQXR0cmlidXRlUGF0aCA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFByb2dyYW1TY29wZSA9IHtcbiAgcHJvdmlkZXJTY2hlbWE6IFByb3ZpZGVyU2NoZW1hO1xuICBwcm92aWRlckdlbmVyYXRvcjogUmVjb3JkPHN0cmluZywgVGVycmFmb3JtUHJvdmlkZXJHZW5lcmF0b3I+O1xuICBjb25zdHJ1Y3RzOiBTZXQ8c3RyaW5nPjtcbiAgdmFyaWFibGVzOiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIHtcbiAgICAgIHJlc291cmNlOiBzdHJpbmc7XG4gICAgICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgICB9XG4gID47XG4gIC8vIFRlbXBvcmFyeSBmbGFnIHRvIGluZGljYXRlIGlmIHdlIG5lZWQgdG8gaW1wb3J0IHRoZSBjZGt0ZiBsaWJyYXJ5IHRvIGFjY2VzcyB0aGUgdG9rZW4gY2xhc3NcbiAgaGFzVG9rZW5CYXNlZFR5cGVDb2VyY2lvbjogYm9vbGVhbjtcbiAgbm9kZUlkczogc3RyaW5nW107IC8vIHRlbXBvcmFyaWx5IGFkZGVkIHVudGlsIHJlcGxhY2VkXG4gIGltcG9ydGFibGVzOiBJbXBvcnRhYmxlQ29uc3RydWN0W107IC8vIHJlY29yZHMgYWxsIGltcG9ydHMgZm9yIHRoZSBjb252ZXJzaW9uXG4gIHRvcExldmVsQ29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBBdHRyaWJ1dGVQYXRoPjtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlU2NvcGUgPSBQcm9ncmFtU2NvcGUgJiB7XG4gIGZvckVhY2hJdGVyYXRvck5hbWU/OiBzdHJpbmc7IC8vIHNldCBpZiBhIGZvcl9lYWNoIGlzIHVzZWQgaW4gdGhpcyByZXNvdXJjZVxuICBjb3VudEl0ZXJhdG9yTmFtZT86IHN0cmluZzsgLy8gc2V0IGlmIGEgY291bnQgaXMgdXNlZCBpbiB0aGlzIHJlc291cmNlXG4gIHdpdGhpbk92ZXJyaWRlRXhwcmVzc2lvbj86IGJvb2xlYW47IC8vIHNldCBpZiB3ZSBhcmUgY3VycmVudGx5IHdpdGhpbiBhbiBvdmVycmlkZSBleHByZXNzaW9uXG4gIHNjb3BlZFZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IC8vIHNldCBpZiB3ZSBhcmUgY3VycmVudGx5IHdpdGhpbiBhbiBkeW5hbWljIGJsb2NrIGV4cHJlc3Npb25cbn07XG5cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZSA9IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHJlZmVyZW5jZWU6IHsgaWQ6IHN0cmluZzsgZnVsbDogc3RyaW5nIH07IC8vIGlkZW50aWZpZXIgZm9yIHJlc291cmNlXG4gIHVzZUZxbj86IGJvb2xlYW47XG4gIGlzVmFyaWFibGU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Jsb2NrID0ge1xuICBwYXRoOiBzdHJpbmc7XG4gIGZvcl9lYWNoOiBzdHJpbmc7XG4gIGNvbnRlbnQ6IFRlcnJhZm9ybVJlc291cmNlQmxvY2s7XG4gIHNjb3BlZFZhcjogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSXRlcmF0b3JWYXJpYWJsZVJlZmVyZW5jZSA9IHtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBJbXBvcnRhYmxlQ29uc3RydWN0ID0ge1xuICBwcm92aWRlcjogc3RyaW5nO1xuICBjb25zdHJ1Y3ROYW1lOiBzdHJpbmc7XG4gIG5hbWVzcGFjZT86IHN0cmluZztcbn07XG4iXX0=
package/lib/utils.js DELETED
@@ -1,25 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.uniqueId = exports.pascalCase = exports.camelCase = exports.leaveCommentText = exports.logger = void 0;
7
- // Copyright (c) HashiCorp, Inc
8
- // SPDX-License-Identifier: MPL-2.0
9
- const camelcase_1 = __importDefault(require("camelcase"));
10
- var commons_1 = require("@cdktn/commons");
11
- Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return commons_1.logger; } });
12
- exports.leaveCommentText = `Please leave a comment at https://cdk.tf/bugs/convert-expressions if you run into this issue.`;
13
- const camelCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"));
14
- exports.camelCase = camelCase;
15
- const pascalCase = (str) => (0, camelcase_1.default)(str.replace(/[-/]/g, "_"), { pascalCase: true });
16
- exports.pascalCase = pascalCase;
17
- function uniqueId(set, key) {
18
- if (set.has(key)) {
19
- return uniqueId(set, `${key}_${set.size}`);
20
- }
21
- set.add(key);
22
- return key;
23
- }
24
- exports.uniqueId = uniqueId;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDBEQUFrQztBQUVsQywwQ0FBd0M7QUFBL0IsaUdBQUEsTUFBTSxPQUFBO0FBRUYsUUFBQSxnQkFBZ0IsR0FBRywrRkFBK0YsQ0FBQztBQUV6SCxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFBbEUsUUFBQSxTQUFTLGFBQXlEO0FBQ3hFLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FDeEMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFEaEQsUUFBQSxVQUFVLGNBQ3NDO0FBRTdELFNBQWdCLFFBQVEsQ0FBQyxHQUFnQixFQUFFLEdBQVc7SUFDcEQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBTkQsNEJBTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0IGNhbWVsY2FzZSBmcm9tIFwiY2FtZWxjYXNlXCI7XG5cbmV4cG9ydCB7IGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuXG5leHBvcnQgY29uc3QgbGVhdmVDb21tZW50VGV4dCA9IGBQbGVhc2UgbGVhdmUgYSBjb21tZW50IGF0IGh0dHBzOi8vY2RrLnRmL2J1Z3MvY29udmVydC1leHByZXNzaW9ucyBpZiB5b3UgcnVuIGludG8gdGhpcyBpc3N1ZS5gO1xuXG5leHBvcnQgY29uc3QgY2FtZWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PiBjYW1lbGNhc2Uoc3RyLnJlcGxhY2UoL1stL10vZywgXCJfXCIpKTtcbmV4cG9ydCBjb25zdCBwYXNjYWxDYXNlID0gKHN0cjogc3RyaW5nKSA9PlxuICBjYW1lbGNhc2Uoc3RyLnJlcGxhY2UoL1stL10vZywgXCJfXCIpLCB7IHBhc2NhbENhc2U6IHRydWUgfSk7XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVJZChzZXQ6IFNldDxzdHJpbmc+LCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChzZXQuaGFzKGtleSkpIHtcbiAgICByZXR1cm4gdW5pcXVlSWQoc2V0LCBgJHtrZXl9XyR7c2V0LnNpemV9YCk7XG4gIH1cbiAgc2V0LmFkZChrZXkpO1xuICByZXR1cm4ga2V5O1xufVxuIl19
package/lib/variables.js DELETED
@@ -1,172 +0,0 @@
1
- "use strict";
2
- /**
3
- * Copyright (c) HashiCorp, Inc.
4
- * SPDX-License-Identifier: MPL-2.0
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- var __importDefault = (this && this.__importDefault) || function (mod) {
30
- return (mod && mod.__esModule) ? mod : { "default": mod };
31
- };
32
- Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.variableName = exports.constructAst = exports.referenceToVariableName = void 0;
34
- const t = __importStar(require("@babel/types"));
35
- const utils_1 = require("./utils");
36
- const provider_generator_1 = require("@cdktn/provider-generator");
37
- const provider_1 = require("./provider");
38
- const reserved_words_1 = __importDefault(require("reserved-words"));
39
- function referenceToVariableName(scope, ref) {
40
- const parts = ref.referencee.id.split(".");
41
- const resource = parts[0] === "data" ? `${parts[0]}.${parts[1]}` : parts[0];
42
- const name = parts[0] === "data" ? parts[2] : parts[1];
43
- return variableName(scope, resource, name);
44
- }
45
- exports.referenceToVariableName = referenceToVariableName;
46
- function validVarName(name) {
47
- if (reserved_words_1.default.check(name)) {
48
- return `${name}Var`;
49
- }
50
- if (!Number.isNaN(parseInt(name[0], 10))) {
51
- return `d${name}`;
52
- }
53
- return name;
54
- }
55
- function getUniqueName(scope, provider, type) {
56
- var _a;
57
- // early abort on cdktf
58
- if (provider === "cdktf") {
59
- return (0, utils_1.pascalCase)(type.replace("cdktf_", ""));
60
- }
61
- // early abort on cdktn
62
- if (provider === "cdktn") {
63
- return (0, utils_1.pascalCase)(type.replace("cdktn_", ""));
64
- }
65
- if (provider === "NullProvider") {
66
- return (0, utils_1.pascalCase)(type.replace("NullProvider_", ""));
67
- }
68
- // Special handling for provider blocks, e.g. aws_AwsProvider
69
- if (type === `${(0, utils_1.pascalCase)(provider)}Provider`) {
70
- return (0, provider_generator_1.sanitizeClassOrNamespaceName)(type, true);
71
- }
72
- const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
73
- if (fullProviderName && scope.providerGenerator[fullProviderName]) {
74
- return (_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getClassNameForResource(type);
75
- }
76
- else {
77
- // If we can not find the class name for a resource the caller needs to find a sensible default
78
- return null;
79
- }
80
- }
81
- function getResourceNamespace(scope, provider, resource, isDataSource, type) {
82
- var _a;
83
- // happens e.g. for references to cdktn.TerraformStack (and similar) in generated code
84
- if (provider === "cdktn") {
85
- return undefined;
86
- }
87
- // e.g. awsProvider -> provider
88
- if (resource === (0, utils_1.pascalCase)(`${provider}_provider`) ||
89
- (provider === "NullProvider" && resource === "NullProvider")) {
90
- return "provider";
91
- }
92
- const fullProviderName = (0, provider_1.getFullProviderName)(scope.providerSchema, provider);
93
- if (fullProviderName && scope.providerGenerator[fullProviderName]) {
94
- return (0, utils_1.camelCase)((_a = scope.providerGenerator[fullProviderName]) === null || _a === void 0 ? void 0 : _a.getNamespaceNameForResource(type.replace(/\./g, "_")));
95
- }
96
- if (isDataSource) {
97
- return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
98
- }
99
- return (0, utils_1.camelCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
100
- }
101
- function constructAst(scope, type, isModuleImport) {
102
- if (isModuleImport) {
103
- return t.memberExpression(t.identifier(type), t.identifier(type));
104
- }
105
- if (type.startsWith("var.")) {
106
- scope.importables.push({
107
- provider: "cdktn",
108
- constructName: "TerraformVariable",
109
- });
110
- return t.identifier("TerraformVariable");
111
- }
112
- if (type === "terraform.data") {
113
- scope.importables.push({
114
- constructName: "DataResource",
115
- provider: "cdktn",
116
- });
117
- return t.identifier("DataResource");
118
- }
119
- // resources or data sources
120
- if (!type.includes("./") && type.includes(".")) {
121
- const parts = type.split(".");
122
- if (parts[0] === "data") {
123
- const [, provider, resource] = parts;
124
- const namespace = getResourceNamespace(scope, provider, resource, true, type);
125
- const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
126
- (0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(`data_${provider}_${resource}`));
127
- scope.importables.push({
128
- provider: provider,
129
- constructName: resourceName,
130
- namespace,
131
- });
132
- if (namespace) {
133
- return t.identifier(resourceName); // e.g. DataAwsInstance
134
- }
135
- return t.identifier(resourceName); // e.g. DataAwsNatGateway
136
- }
137
- const [provider, resource] = parts;
138
- const namespace = getResourceNamespace(scope, provider, resource, false, type);
139
- const resourceName = getUniqueName(scope, provider, parts.join("_")) ||
140
- (0, utils_1.pascalCase)((0, provider_generator_1.sanitizeClassOrNamespaceName)(resource));
141
- scope.importables.push({
142
- provider: provider,
143
- constructName: resourceName,
144
- namespace,
145
- });
146
- if (namespace) {
147
- return t.identifier(resourceName); // e.g. Instance
148
- }
149
- return t.identifier(resourceName); // e.g. BigQueryTable
150
- }
151
- return t.identifier((0, utils_1.pascalCase)(type));
152
- }
153
- exports.constructAst = constructAst;
154
- function variableName(scope, resource, name) {
155
- const consistentResourceName = resource.replace(/\./g, "_");
156
- // name collision, we need to prefix the name
157
- if (scope.variables[name]) {
158
- if (consistentResourceName === scope.variables[name].resource) {
159
- return scope.variables[name].variableName;
160
- }
161
- // we only cache one per name
162
- return validVarName((0, utils_1.camelCase)([resource, name].join("_")));
163
- }
164
- const variableName = validVarName((0, utils_1.camelCase)(name));
165
- scope.variables[name] = {
166
- variableName,
167
- resource: consistentResourceName,
168
- };
169
- return variableName;
170
- }
171
- exports.variableName = variableName;
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQWtDO0FBRWxDLG1DQUFnRDtBQUNoRCxrRUFBeUU7QUFDekUseUNBQWlEO0FBQ2pELG9FQUEyQztBQUUzQyxTQUFnQix1QkFBdUIsQ0FDckMsS0FBbUIsRUFDbkIsR0FBYztJQUVkLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQVJELDBEQVFDO0FBRUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxJQUFJLHdCQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FB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QUMsZ0JBQWdCO1FBQ3JELENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxxQkFBcUI7SUFDMUQsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBcEZELG9DQW9GQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsS0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsSUFBWTtJQUVaLE1BQU0sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDNUQsNkNBQTZDO0lBQzdDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLElBQUksc0JBQXNCLEtBQUssS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5RCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQzVDLENBQUM7UUFFRCw2QkFBNkI7UUFDN0IsT0FBTyxZQUFZLENBQUMsSUFBQSxpQkFBUyxFQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFBLGlCQUFTLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVuRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHO1FBQ3RCLFlBQVk7UUFDWixRQUFRLEVBQUUsc0JBQXNCO0tBQ2pDLENBQUM7SUFFRixPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBeEJELG9DQXdCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgdCBmcm9tIFwiQGJhYmVsL3R5cGVzXCI7XG5pbXBvcnQgeyBQcm9ncmFtU2NvcGUsIFJlZmVyZW5jZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBjYW1lbENhc2UsIHBhc2NhbENhc2UgfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHsgc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZSB9IGZyb20gXCJAY2RrdG4vcHJvdmlkZXItZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBnZXRGdWxsUHJvdmlkZXJOYW1lIH0gZnJvbSBcIi4vcHJvdmlkZXJcIjtcbmltcG9ydCByZXNlcnZlZFdvcmRzIGZyb20gXCJyZXNlcnZlZC13b3Jkc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVmZXJlbmNlVG9WYXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHJlZjogUmVmZXJlbmNlLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgcGFydHMgPSByZWYucmVmZXJlbmNlZS5pZC5zcGxpdChcIi5cIik7XG4gIGNvbnN0IHJlc291cmNlID0gcGFydHNbMF0gPT09IFwiZGF0YVwiID8gYCR7cGFydHNbMF19LiR7cGFydHNbMV19YCA6IHBhcnRzWzBdO1xuICBjb25zdCBuYW1lID0gcGFydHNbMF0gPT09IFwiZGF0YVwiID8gcGFydHNbMl0gOiBwYXJ0c1sxXTtcbiAgcmV0dXJuIHZhcmlhYmxlTmFtZShzY29wZSwgcmVzb3VyY2UsIG5hbWUpO1xufVxuXG5mdW5jdGlvbiB2YWxpZFZhck5hbWUobmFtZTogc3RyaW5nKSB7XG4gIGlmIChyZXNlcnZlZFdvcmRzLmNoZWNrKG5hbWUpKSB7XG4gICAgcmV0dXJuIGAke25hbWV9VmFyYDtcbiAgfVxuXG4gIGlmICghTnVtYmVyLmlzTmFOKHBhcnNlSW50KG5hbWVbMF0sIDEwKSkpIHtcbiAgICByZXR1cm4gYGQke25hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBnZXRVbmlxdWVOYW1lKHNjb3BlOiBQcm9ncmFtU2NvcGUsIHByb3ZpZGVyOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAvLyBlYXJseSBhYm9ydCBvbiBjZGt0ZlxuICBpZiAocHJvdmlkZXIgPT09IFwiY2RrdGZcIikge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKHR5cGUucmVwbGFjZShcImNka3RmX1wiLCBcIlwiKSk7XG4gIH1cbiAgLy8gZWFybHkgYWJvcnQgb24gY2RrdG5cbiAgaWYgKHByb3ZpZGVyID09PSBcImNka3RuXCIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZSh0eXBlLnJlcGxhY2UoXCJjZGt0bl9cIiwgXCJcIikpO1xuICB9XG5cbiAgaWYgKHByb3ZpZGVyID09PSBcIk51bGxQcm92aWRlclwiKSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UodHlwZS5yZXBsYWNlKFwiTnVsbFByb3ZpZGVyX1wiLCBcIlwiKSk7XG4gIH1cblxuICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBwcm92aWRlciBibG9ja3MsIGUuZy4gYXdzX0F3c1Byb3ZpZGVyXG4gIGlmICh0eXBlID09PSBgJHtwYXNjYWxDYXNlKHByb3ZpZGVyKX1Qcm92aWRlcmApIHtcbiAgICByZXR1cm4gc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZSh0eXBlLCB0cnVlKTtcbiAgfVxuXG4gIGNvbnN0IGZ1bGxQcm92aWRlck5hbWUgPSBnZXRGdWxsUHJvdmlkZXJOYW1lKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwcm92aWRlcik7XG4gIGlmIChmdWxsUHJvdmlkZXJOYW1lICYmIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdKSB7XG4gICAgcmV0dXJuIHNjb3BlLnByb3ZpZGVyR2VuZXJhdG9yW2Z1bGxQcm92aWRlck5hbWVdPy5nZXRDbGFzc05hbWVGb3JSZXNvdXJjZShcbiAgICAgIHR5cGUsXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiB3ZSBjYW4gbm90IGZpbmQgdGhlIGNsYXNzIG5hbWUgZm9yIGEgcmVzb3VyY2UgdGhlIGNhbGxlciBuZWVkcyB0byBmaW5kIGEgc2Vuc2libGUgZGVmYXVsdFxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFJlc291cmNlTmFtZXNwYWNlKFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICBwcm92aWRlcjogc3RyaW5nLFxuICByZXNvdXJjZTogc3RyaW5nLFxuICBpc0RhdGFTb3VyY2U6IGJvb2xlYW4sXG4gIHR5cGU6IHN0cmluZyxcbikge1xuICAvLyBoYXBwZW5zIGUuZy4gZm9yIHJlZmVyZW5jZXMgdG8gY2RrdG4uVGVycmFmb3JtU3RhY2sgKGFuZCBzaW1pbGFyKSBpbiBnZW5lcmF0ZWQgY29kZVxuICBpZiAocHJvdmlkZXIgPT09IFwiY2RrdG5cIikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBlLmcuIGF3c1Byb3ZpZGVyIC0+IHByb3ZpZGVyXG4gIGlmIChcbiAgICByZXNvdXJjZSA9PT0gcGFzY2FsQ2FzZShgJHtwcm92aWRlcn1fcHJvdmlkZXJgKSB8fFxuICAgIChwcm92aWRlciA9PT0gXCJOdWxsUHJvdmlkZXJcIiAmJiByZXNvdXJjZSA9PT0gXCJOdWxsUHJvdmlkZXJcIilcbiAgKSB7XG4gICAgcmV0dXJuIFwicHJvdmlkZXJcIjtcbiAgfVxuXG4gIGNvbnN0IGZ1bGxQcm92aWRlck5hbWUgPSBnZXRGdWxsUHJvdmlkZXJOYW1lKHNjb3BlLnByb3ZpZGVyU2NoZW1hLCBwcm92aWRlcik7XG5cbiAgaWYgKGZ1bGxQcm92aWRlck5hbWUgJiYgc2NvcGUucHJvdmlkZXJHZW5lcmF0b3JbZnVsbFByb3ZpZGVyTmFtZV0pIHtcbiAgICByZXR1cm4gY2FtZWxDYXNlKFxuICAgICAgc2NvcGUucHJvdmlkZXJHZW5lcmF0b3JbZnVsbFByb3ZpZGVyTmFtZV0/LmdldE5hbWVzcGFjZU5hbWVGb3JSZXNvdXJjZShcbiAgICAgICAgdHlwZS5yZXBsYWNlKC9cXC4vZywgXCJfXCIpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGlzRGF0YVNvdXJjZSkge1xuICAgIHJldHVybiBjYW1lbENhc2UoXG4gICAgICBzYW5pdGl6ZUNsYXNzT3JOYW1lc3BhY2VOYW1lKGBkYXRhXyR7cHJvdmlkZXJ9XyR7cmVzb3VyY2V9YCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjYW1lbENhc2Uoc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShyZXNvdXJjZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0QXN0KFxuICBzY29wZTogUHJvZ3JhbVNjb3BlLFxuICB0eXBlOiBzdHJpbmcsXG4gIGlzTW9kdWxlSW1wb3J0OiBib29sZWFuLFxuKSB7XG4gIGlmIChpc01vZHVsZUltcG9ydCkge1xuICAgIHJldHVybiB0Lm1lbWJlckV4cHJlc3Npb24odC5pZGVudGlmaWVyKHR5cGUpLCB0LmlkZW50aWZpZXIodHlwZSkpO1xuICB9XG5cbiAgaWYgKHR5cGUuc3RhcnRzV2l0aChcInZhci5cIikpIHtcbiAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgIHByb3ZpZGVyOiBcImNka3RuXCIsXG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIlRlcnJhZm9ybVZhcmlhYmxlXCIsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdC5pZGVudGlmaWVyKFwiVGVycmFmb3JtVmFyaWFibGVcIik7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gXCJ0ZXJyYWZvcm0uZGF0YVwiKSB7XG4gICAgc2NvcGUuaW1wb3J0YWJsZXMucHVzaCh7XG4gICAgICBjb25zdHJ1Y3ROYW1lOiBcIkRhdGFSZXNvdXJjZVwiLFxuICAgICAgcHJvdmlkZXI6IFwiY2RrdG5cIixcbiAgICB9KTtcbiAgICByZXR1cm4gdC5pZGVudGlmaWVyKFwiRGF0YVJlc291cmNlXCIpO1xuICB9XG5cbiAgLy8gcmVzb3VyY2VzIG9yIGRhdGEgc291cmNlc1xuICBpZiAoIXR5cGUuaW5jbHVkZXMoXCIuL1wiKSAmJiB0eXBlLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgIGNvbnN0IHBhcnRzID0gdHlwZS5zcGxpdChcIi5cIik7XG4gICAgaWYgKHBhcnRzWzBdID09PSBcImRhdGFcIikge1xuICAgICAgY29uc3QgWywgcHJvdmlkZXIsIHJlc291cmNlXSA9IHBhcnRzO1xuXG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBnZXRSZXNvdXJjZU5hbWVzcGFjZShcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICByZXNvdXJjZSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICAgdHlwZSxcbiAgICAgICk7XG4gICAgICBjb25zdCByZXNvdXJjZU5hbWUgPVxuICAgICAgICBnZXRVbmlxdWVOYW1lKHNjb3BlLCBwcm92aWRlciwgcGFydHMuam9pbihcIl9cIikpIHx8XG4gICAgICAgIHBhc2NhbENhc2UoXG4gICAgICAgICAgc2FuaXRpemVDbGFzc09yTmFtZXNwYWNlTmFtZShgZGF0YV8ke3Byb3ZpZGVyfV8ke3Jlc291cmNlfWApLFxuICAgICAgICApO1xuXG4gICAgICBzY29wZS5pbXBvcnRhYmxlcy5wdXNoKHtcbiAgICAgICAgcHJvdmlkZXI6IHByb3ZpZGVyLFxuICAgICAgICBjb25zdHJ1Y3ROYW1lOiByZXNvdXJjZU5hbWUsXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgIHJldHVybiB0LmlkZW50aWZpZXIocmVzb3VyY2VOYW1lKTsgLy8gZS5nLiBEYXRhQXdzSW5zdGFuY2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIERhdGFBd3NOYXRHYXRld2F5XG4gICAgfVxuXG4gICAgY29uc3QgW3Byb3ZpZGVyLCByZXNvdXJjZV0gPSBwYXJ0cztcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBnZXRSZXNvdXJjZU5hbWVzcGFjZShcbiAgICAgIHNjb3BlLFxuICAgICAgcHJvdmlkZXIsXG4gICAgICByZXNvdXJjZSxcbiAgICAgIGZhbHNlLFxuICAgICAgdHlwZSxcbiAgICApO1xuICAgIGNvbnN0IHJlc291cmNlTmFtZSA9XG4gICAgICBnZXRVbmlxdWVOYW1lKHNjb3BlLCBwcm92aWRlciwgcGFydHMuam9pbihcIl9cIikpIHx8XG4gICAgICBwYXNjYWxDYXNlKHNhbml0aXplQ2xhc3NPck5hbWVzcGFjZU5hbWUocmVzb3VyY2UpKTtcblxuICAgIHNjb3BlLmltcG9ydGFibGVzLnB1c2goe1xuICAgICAgcHJvdmlkZXI6IHByb3ZpZGVyLFxuICAgICAgY29uc3RydWN0TmFtZTogcmVzb3VyY2VOYW1lLFxuICAgICAgbmFtZXNwYWNlLFxuICAgIH0pO1xuXG4gICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIEluc3RhbmNlXG4gICAgfVxuXG4gICAgcmV0dXJuIHQuaWRlbnRpZmllcihyZXNvdXJjZU5hbWUpOyAvLyBlLmcuIEJpZ1F1ZXJ5VGFibGVcbiAgfVxuXG4gIHJldHVybiB0LmlkZW50aWZpZXIocGFzY2FsQ2FzZSh0eXBlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZU5hbWUoXG4gIHNjb3BlOiBQcm9ncmFtU2NvcGUsXG4gIHJlc291cmNlOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGNvbnNpc3RlbnRSZXNvdXJjZU5hbWUgPSByZXNvdXJjZS5yZXBsYWNlKC9cXC4vZywgXCJfXCIpO1xuICAvLyBuYW1lIGNvbGxpc2lvbiwgd2UgbmVlZCB0byBwcmVmaXggdGhlIG5hbWVcbiAgaWYgKHNjb3BlLnZhcmlhYmxlc1tuYW1lXSkge1xuICAgIGlmIChjb25zaXN0ZW50UmVzb3VyY2VOYW1lID09PSBzY29wZS52YXJpYWJsZXNbbmFtZV0ucmVzb3VyY2UpIHtcbiAgICAgIHJldHVybiBzY29wZS52YXJpYWJsZXNbbmFtZV0udmFyaWFibGVOYW1lO1xuICAgIH1cblxuICAgIC8vIHdlIG9ubHkgY2FjaGUgb25lIHBlciBuYW1lXG4gICAgcmV0dXJuIHZhbGlkVmFyTmFtZShjYW1lbENhc2UoW3Jlc291cmNlLCBuYW1lXS5qb2luKFwiX1wiKSkpO1xuICB9XG5cbiAgY29uc3QgdmFyaWFibGVOYW1lID0gdmFsaWRWYXJOYW1lKGNhbWVsQ2FzZShuYW1lKSk7XG5cbiAgc2NvcGUudmFyaWFibGVzW25hbWVdID0ge1xuICAgIHZhcmlhYmxlTmFtZSxcbiAgICByZXNvdXJjZTogY29uc2lzdGVudFJlc291cmNlTmFtZSxcbiAgfTtcblxuICByZXR1cm4gdmFyaWFibGVOYW1lO1xufVxuIl19
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes