pulumi-namecheap 2.2.10 → 2.2.12

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
@@ -17,20 +17,29 @@ This package provides a Pulumi provider that enables you to manage your Namechea
17
17
  ## Installation
18
18
 
19
19
  ### npm
20
+
20
21
  ```bash
21
22
  npm install pulumi-namecheap
22
23
  ```
23
24
 
24
25
  ### yarn
26
+
25
27
  ```bash
26
28
  yarn add pulumi-namecheap
27
29
  ```
28
30
 
29
31
  ### pnpm
32
+
30
33
  ```bash
31
34
  pnpm add pulumi-namecheap
32
35
  ```
33
36
 
37
+ ### bun
38
+
39
+ ```bash
40
+ bun add pulumi-namecheap
41
+ ```
42
+
34
43
  ## Configuration
35
44
 
36
45
  Before using the provider, you need to configure authentication with your Namecheap API credentials.
@@ -51,6 +60,7 @@ Before using the provider, you need to configure authentication with your Namech
51
60
  You can configure the provider in several ways:
52
61
 
53
62
  #### 1. Using Pulumi Config
63
+
54
64
  ```bash
55
65
  pulumi config set namecheap:apiKey your-api-key
56
66
  pulumi config set namecheap:apiUser your-api-user
@@ -60,6 +70,7 @@ pulumi config set namecheap:useSandbox false # optional
60
70
  ```
61
71
 
62
72
  #### 2. Using Environment Variables
73
+
63
74
  ```bash
64
75
  export NAMECHEAP_API_KEY="your-api-key"
65
76
  export NAMECHEAP_API_USER="your-api-user"
@@ -69,16 +80,17 @@ export NAMECHEAP_USE_SANDBOX="false" # optional
69
80
  ```
70
81
 
71
82
  #### 3. Provider Constructor
83
+
72
84
  ```typescript
73
- import * as namecheap from "pulumi-namecheap";
74
-
75
- const provider = new namecheap.Provider("namecheap-provider", {
76
- apiKey: "your-api-key",
77
- apiUser: "your-api-user",
78
- userName: "your-username",
79
- clientIp: "your-client-ip",
80
- useSandbox: false, // optional
81
- });
85
+ import * as namecheap from 'pulumi-namecheap'
86
+
87
+ const provider = new namecheap.Provider('namecheap-provider', {
88
+ apiKey: 'your-api-key',
89
+ apiUser: 'your-api-user',
90
+ userName: 'your-username',
91
+ clientIp: 'your-client-ip',
92
+ useSandbox: false, // optional
93
+ })
82
94
  ```
83
95
 
84
96
  ## Usage
@@ -86,121 +98,125 @@ const provider = new namecheap.Provider("namecheap-provider", {
86
98
  ### Basic Domain Records Management
87
99
 
88
100
  ```typescript
89
- import * as namecheap from "pulumi-namecheap";
101
+ import * as namecheap from 'pulumi-namecheap'
90
102
 
91
103
  // Create DNS records for your domain
92
- const records = new namecheap.DomainRecords("my-domain-records", {
93
- domain: "example.com",
94
- mode: "OVERWRITE", // MERGE (default) or OVERWRITE
95
- records: [
96
- {
97
- hostname: "@",
98
- type: "A",
99
- address: "192.168.1.100",
100
- ttl: 300,
101
- },
102
- {
103
- hostname: "www",
104
- type: "CNAME",
105
- address: "example.com",
106
- ttl: 300,
107
- },
108
- {
109
- hostname: "@",
110
- type: "MX",
111
- address: "mail.example.com",
112
- mxPref: 10,
113
- ttl: 300,
114
- },
115
- {
116
- hostname: "@",
117
- type: "TXT",
118
- address: "v=spf1 include:_spf.google.com ~all",
119
- ttl: 300,
120
- },
121
- ],
122
- });
104
+ const records = new namecheap.DomainRecords('my-domain-records', {
105
+ domain: 'example.com',
106
+ mode: 'OVERWRITE', // MERGE (default) or OVERWRITE
107
+ records: [
108
+ {
109
+ hostname: '@',
110
+ type: 'A',
111
+ address: '192.168.1.100',
112
+ ttl: 300,
113
+ },
114
+ {
115
+ hostname: 'www',
116
+ type: 'CNAME',
117
+ address: 'example.com',
118
+ ttl: 300,
119
+ },
120
+ {
121
+ hostname: '@',
122
+ type: 'MX',
123
+ address: 'mail.example.com',
124
+ mxPref: 10,
125
+ ttl: 300,
126
+ },
127
+ {
128
+ hostname: '@',
129
+ type: 'TXT',
130
+ address: 'v=spf1 include:_spf.google.com ~all',
131
+ ttl: 300,
132
+ },
133
+ ],
134
+ })
123
135
  ```
124
136
 
125
137
  ### Advanced Configuration with Email Setup
126
138
 
127
139
  ```typescript
128
- import * as namecheap from "pulumi-namecheap";
129
-
130
- const domainRecords = new namecheap.DomainRecords("example-domain", {
131
- domain: "example.com",
132
- emailType: "GMAIL", // Configure Gmail for email
133
- mode: "MERGE",
134
- records: [
135
- // A record for root domain
136
- {
137
- hostname: "@",
138
- type: "A",
139
- address: "203.0.113.1",
140
- ttl: 1800,
141
- },
142
- // CNAME for www subdomain
143
- {
144
- hostname: "www",
145
- type: "CNAME",
146
- address: "example.com",
147
- ttl: 1800,
148
- },
149
- // Multiple MX records for redundancy
150
- {
151
- hostname: "@",
152
- type: "MX",
153
- address: "aspmx.l.google.com",
154
- mxPref: 1,
155
- ttl: 3600,
156
- },
157
- {
158
- hostname: "@",
159
- type: "MX",
160
- address: "alt1.aspmx.l.google.com",
161
- mxPref: 5,
162
- ttl: 3600,
163
- },
164
- // TXT record for domain verification
165
- {
166
- hostname: "@",
167
- type: "TXT",
168
- address: "google-site-verification=your-verification-string",
169
- ttl: 3600,
170
- },
171
- ],
172
- });
140
+ import * as namecheap from 'pulumi-namecheap'
141
+
142
+ const domainRecords = new namecheap.DomainRecords('example-domain', {
143
+ domain: 'example.com',
144
+ emailType: 'GMAIL', // Configure Gmail for email
145
+ mode: 'MERGE',
146
+ records: [
147
+ // A record for root domain
148
+ {
149
+ hostname: '@',
150
+ type: 'A',
151
+ address: '203.0.113.1',
152
+ ttl: 1800,
153
+ },
154
+ // CNAME for www subdomain
155
+ {
156
+ hostname: 'www',
157
+ type: 'CNAME',
158
+ address: 'example.com',
159
+ ttl: 1800,
160
+ },
161
+ // Multiple MX records for redundancy
162
+ {
163
+ hostname: '@',
164
+ type: 'MX',
165
+ address: 'aspmx.l.google.com',
166
+ mxPref: 1,
167
+ ttl: 3600,
168
+ },
169
+ {
170
+ hostname: '@',
171
+ type: 'MX',
172
+ address: 'alt1.aspmx.l.google.com',
173
+ mxPref: 5,
174
+ ttl: 3600,
175
+ },
176
+ // TXT record for domain verification
177
+ {
178
+ hostname: '@',
179
+ type: 'TXT',
180
+ address: 'google-site-verification=your-verification-string',
181
+ ttl: 3600,
182
+ },
183
+ ],
184
+ })
173
185
 
174
186
  // Export the domain records ID
175
- export const domainRecordsId = domainRecords.domainRecordsId;
187
+ export const domainRecordsId = domainRecords.domainRecordsId
176
188
  ```
177
189
 
178
190
  ### Using Custom Provider Instance
179
191
 
180
192
  ```typescript
181
- import * as namecheap from "pulumi-namecheap";
193
+ import * as namecheap from 'pulumi-namecheap'
182
194
 
183
195
  // Create a custom provider for sandbox testing
184
- const sandboxProvider = new namecheap.Provider("sandbox-provider", {
185
- apiKey: "your-sandbox-api-key",
186
- apiUser: "your-api-user",
187
- userName: "your-username",
188
- clientIp: "your-client-ip",
189
- useSandbox: true,
190
- });
196
+ const sandboxProvider = new namecheap.Provider('sandbox-provider', {
197
+ apiKey: 'your-sandbox-api-key',
198
+ apiUser: 'your-api-user',
199
+ userName: 'your-username',
200
+ clientIp: 'your-client-ip',
201
+ useSandbox: true,
202
+ })
191
203
 
192
204
  // Use the custom provider
193
- const testRecords = new namecheap.DomainRecords("test-records", {
194
- domain: "test-domain.com",
205
+ const testRecords = new namecheap.DomainRecords(
206
+ 'test-records',
207
+ {
208
+ domain: 'test-domain.com',
195
209
  records: [
196
- {
197
- hostname: "test",
198
- type: "A",
199
- address: "192.168.1.1",
200
- ttl: 300,
201
- },
210
+ {
211
+ hostname: 'test',
212
+ type: 'A',
213
+ address: '192.168.1.1',
214
+ ttl: 300,
215
+ },
202
216
  ],
203
- }, { provider: sandboxProvider });
217
+ },
218
+ { provider: sandboxProvider },
219
+ )
204
220
  ```
205
221
 
206
222
  ## Resources
@@ -237,7 +253,7 @@ For detailed API documentation, see the generated documentation in your IDE or v
237
253
 
238
254
  1. **Log in to Namecheap**: Go to your Namecheap account dashboard
239
255
  2. **Enable API Access**: Navigate to Profile → Tools → Namecheap API Access
240
- 3. **Generate API Key**: Create a new API key for your application
256
+ 3. **Generate API Key**: Create a new API key for your application
241
257
  4. **Whitelist IP**: Add your client IP address to the whitelist
242
258
  5. **Note Your Details**: Save your API key, username, and API user name
243
259
 
@@ -249,14 +265,14 @@ Namecheap provides a sandbox environment for testing. Set `useSandbox: true` in
249
265
 
250
266
  You can find more examples in the [examples directory](./examples) or check out these common use cases:
251
267
 
252
- - [Basic A/CNAME Records](./examples/basic-records)
268
+ - [Basic A/CNAME Records](./examples/basic-records)
253
269
  - [Email Configuration](./examples/email-setup)
254
270
  - [Multi-domain Management](./examples/multiple-domains)
255
271
  - [Sandbox Testing](./examples/sandbox-testing)
256
272
 
257
273
  ## Support
258
274
 
259
- This provider is a derived work of the [Terraform Provider](https://github.com/namecheap/terraform-provider-namecheap) distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/).
275
+ This provider is a derived work of the [Terraform Provider](https://github.com/namecheap/terraform-provider-namecheap) distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/).
260
276
 
261
277
  If you encounter a bug or missing feature, please consult the source [`terraform-provider-namecheap` repo](https://github.com/namecheap/terraform-provider-namecheap/issues).
262
278
 
@@ -0,0 +1 @@
1
+ export * from "./vars";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ // Export members:
20
+ __exportStar(require("./vars"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../config/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;AAEjF,kBAAkB;AAClB,yCAAuB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The namecheap API key
3
+ */
4
+ export declare const apiKey: string | undefined;
5
+ /**
6
+ * A registered api user for namecheap
7
+ */
8
+ export declare const apiUser: string | undefined;
9
+ /**
10
+ * Client IP address
11
+ */
12
+ export declare const clientIp: string | undefined;
13
+ /**
14
+ * Use sandbox API endpoints
15
+ */
16
+ export declare const useSandbox: boolean | undefined;
17
+ /**
18
+ * A registered user name for namecheap
19
+ */
20
+ export declare const userName: string | undefined;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const pulumi = require("@pulumi/pulumi");
6
+ const __config = new pulumi.Config("namecheap");
7
+ Object.defineProperty(exports, "apiKey", {
8
+ get() {
9
+ return __config.get("apiKey");
10
+ },
11
+ enumerable: true,
12
+ });
13
+ Object.defineProperty(exports, "apiUser", {
14
+ get() {
15
+ return __config.get("apiUser");
16
+ },
17
+ enumerable: true,
18
+ });
19
+ Object.defineProperty(exports, "clientIp", {
20
+ get() {
21
+ return __config.get("clientIp");
22
+ },
23
+ enumerable: true,
24
+ });
25
+ Object.defineProperty(exports, "useSandbox", {
26
+ get() {
27
+ return __config.getObject("useSandbox");
28
+ },
29
+ enumerable: true,
30
+ });
31
+ Object.defineProperty(exports, "userName", {
32
+ get() {
33
+ return __config.get("userName");
34
+ },
35
+ enumerable: true,
36
+ });
37
+ //# sourceMappingURL=vars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vars.js","sourceRoot":"","sources":["../../config/vars.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;AAEjF,yCAAyC;AAIzC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAMhD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE;IACrC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE;IACtC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;IACvC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE;IACzC,GAAG;QACC,OAAO,QAAQ,CAAC,SAAS,CAAU,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE;IACvC,GAAG;QACC,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,IAAI;CACnB,CAAC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ export declare class DomainRecords extends pulumi.CustomResource {
5
+ /**
6
+ * Get an existing DomainRecords resource's state with the given name, ID, and optional extra
7
+ * properties used to qualify the lookup.
8
+ *
9
+ * @param name The _unique_ name of the resulting resource.
10
+ * @param id The _unique_ provider ID of the resource to lookup.
11
+ * @param state Any extra arguments used during the lookup.
12
+ * @param opts Optional settings to control the behavior of the CustomResource.
13
+ */
14
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: DomainRecordsState, opts?: pulumi.CustomResourceOptions): DomainRecords;
15
+ /**
16
+ * Returns true if the given object is an instance of DomainRecords. This is designed to work even
17
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
18
+ */
19
+ static isInstance(obj: any): obj is DomainRecords;
20
+ /**
21
+ * Purchased available domain name on your account
22
+ */
23
+ readonly domain: pulumi.Output<string>;
24
+ readonly domainRecordsId: pulumi.Output<string>;
25
+ /**
26
+ * Possible values: NONE, MXE, MX, FWD, OX, GMAIL
27
+ */
28
+ readonly emailType: pulumi.Output<string | undefined>;
29
+ /**
30
+ * Possible values: MERGE (default), OVERWRITE
31
+ */
32
+ readonly mode: pulumi.Output<string | undefined>;
33
+ readonly nameservers: pulumi.Output<string[] | undefined>;
34
+ readonly records: pulumi.Output<outputs.DomainRecordsRecord[] | undefined>;
35
+ /**
36
+ * Create a DomainRecords resource with the given unique name, arguments, and options.
37
+ *
38
+ * @param name The _unique_ name of the resource.
39
+ * @param args The arguments to use to populate this resource's properties.
40
+ * @param opts A bag of options that control this resource's behavior.
41
+ */
42
+ constructor(name: string, args: DomainRecordsArgs, opts?: pulumi.CustomResourceOptions);
43
+ }
44
+ /**
45
+ * Input properties used for looking up and filtering DomainRecords resources.
46
+ */
47
+ export interface DomainRecordsState {
48
+ /**
49
+ * Purchased available domain name on your account
50
+ */
51
+ domain?: pulumi.Input<string>;
52
+ domainRecordsId?: pulumi.Input<string>;
53
+ /**
54
+ * Possible values: NONE, MXE, MX, FWD, OX, GMAIL
55
+ */
56
+ emailType?: pulumi.Input<string>;
57
+ /**
58
+ * Possible values: MERGE (default), OVERWRITE
59
+ */
60
+ mode?: pulumi.Input<string>;
61
+ nameservers?: pulumi.Input<pulumi.Input<string>[]>;
62
+ records?: pulumi.Input<pulumi.Input<inputs.DomainRecordsRecord>[]>;
63
+ }
64
+ /**
65
+ * The set of arguments for constructing a DomainRecords resource.
66
+ */
67
+ export interface DomainRecordsArgs {
68
+ /**
69
+ * Purchased available domain name on your account
70
+ */
71
+ domain: pulumi.Input<string>;
72
+ domainRecordsId?: pulumi.Input<string>;
73
+ /**
74
+ * Possible values: NONE, MXE, MX, FWD, OX, GMAIL
75
+ */
76
+ emailType?: pulumi.Input<string>;
77
+ /**
78
+ * Possible values: MERGE (default), OVERWRITE
79
+ */
80
+ mode?: pulumi.Input<string>;
81
+ nameservers?: pulumi.Input<pulumi.Input<string>[]>;
82
+ records?: pulumi.Input<pulumi.Input<inputs.DomainRecordsRecord>[]>;
83
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.DomainRecords = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class DomainRecords extends pulumi.CustomResource {
9
+ /**
10
+ * Get an existing DomainRecords resource's state with the given name, ID, and optional extra
11
+ * properties used to qualify the lookup.
12
+ *
13
+ * @param name The _unique_ name of the resulting resource.
14
+ * @param id The _unique_ provider ID of the resource to lookup.
15
+ * @param state Any extra arguments used during the lookup.
16
+ * @param opts Optional settings to control the behavior of the CustomResource.
17
+ */
18
+ static get(name, id, state, opts) {
19
+ return new DomainRecords(name, state, { ...opts, id: id });
20
+ }
21
+ /**
22
+ * Returns true if the given object is an instance of DomainRecords. This is designed to work even
23
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
24
+ */
25
+ static isInstance(obj) {
26
+ if (obj === undefined || obj === null) {
27
+ return false;
28
+ }
29
+ return obj['__pulumiType'] === DomainRecords.__pulumiType;
30
+ }
31
+ constructor(name, argsOrState, opts) {
32
+ let resourceInputs = {};
33
+ opts = opts || {};
34
+ if (opts.id) {
35
+ const state = argsOrState;
36
+ resourceInputs["domain"] = state?.domain;
37
+ resourceInputs["domainRecordsId"] = state?.domainRecordsId;
38
+ resourceInputs["emailType"] = state?.emailType;
39
+ resourceInputs["mode"] = state?.mode;
40
+ resourceInputs["nameservers"] = state?.nameservers;
41
+ resourceInputs["records"] = state?.records;
42
+ }
43
+ else {
44
+ const args = argsOrState;
45
+ if (args?.domain === undefined && !opts.urn) {
46
+ throw new Error("Missing required property 'domain'");
47
+ }
48
+ resourceInputs["domain"] = args?.domain;
49
+ resourceInputs["domainRecordsId"] = args?.domainRecordsId;
50
+ resourceInputs["emailType"] = args?.emailType;
51
+ resourceInputs["mode"] = args?.mode;
52
+ resourceInputs["nameservers"] = args?.nameservers;
53
+ resourceInputs["records"] = args?.records;
54
+ }
55
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
56
+ super(DomainRecords.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage());
57
+ }
58
+ }
59
+ exports.DomainRecords = DomainRecords;
60
+ /** @internal */
61
+ DomainRecords.__pulumiType = 'namecheap:index/domainRecords:DomainRecords';
62
+ //# sourceMappingURL=domainRecords.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domainRecords.js","sourceRoot":"","sources":["../domainRecords.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC,MAAa,aAAc,SAAQ,MAAM,CAAC,cAAc;IACpD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA0B,EAAE,IAAmC;QACxH,OAAO,IAAI,aAAa,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,aAAa,CAAC,YAAY,CAAC;IAC9D,CAAC;IA0BD,YAAY,IAAY,EAAE,WAAoD,EAAE,IAAmC;QAC/G,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,WAA6C,CAAC;YAC5D,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,iBAAiB,CAAC,GAAG,KAAK,EAAE,eAAe,CAAC;YAC3D,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;QAC/C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,GAAG,WAA4C,CAAC;YAC1D,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,CAAC;YACD,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,EAAE,eAAe,CAAC;YAC1D,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,EAAE,WAAW,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;QAC9C,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAChH,CAAC;;AA7EL,sCA8EC;AAhEG,gBAAgB;AACO,0BAAY,GAAG,6CAA6C,CAAC"}
package/bin/index.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export { DomainRecordsArgs, DomainRecordsState } from "./domainRecords";
2
+ export type DomainRecords = import("./domainRecords").DomainRecords;
3
+ export declare const DomainRecords: typeof import("./domainRecords").DomainRecords;
4
+ export * from "./provider";
5
+ import * as config from "./config";
6
+ import * as types from "./types";
7
+ export { config, types, };
package/bin/index.js ADDED
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.types = exports.config = exports.DomainRecords = void 0;
20
+ const pulumi = require("@pulumi/pulumi");
21
+ const utilities = require("./utilities");
22
+ exports.DomainRecords = null;
23
+ utilities.lazyLoad(exports, ["DomainRecords"], () => require("./domainRecords"));
24
+ __exportStar(require("./provider"), exports);
25
+ const provider_1 = require("./provider");
26
+ // Export sub-modules:
27
+ const config = require("./config");
28
+ exports.config = config;
29
+ const types = require("./types");
30
+ exports.types = types;
31
+ const _module = {
32
+ version: utilities.getVersion(),
33
+ construct: (name, type, urn) => {
34
+ switch (type) {
35
+ case "namecheap:index/domainRecords:DomainRecords":
36
+ return new exports.DomainRecords(name, undefined, { urn });
37
+ default:
38
+ throw new Error(`unknown resource type ${type}`);
39
+ }
40
+ },
41
+ };
42
+ pulumi.runtime.registerResourceModule("namecheap", "index/domainRecords", _module);
43
+ pulumi.runtime.registerResourcePackage("namecheap", {
44
+ version: utilities.getVersion(),
45
+ constructProvider: (name, type, urn) => {
46
+ if (type !== "pulumi:providers:namecheap") {
47
+ throw new Error(`unknown provider type ${type}`);
48
+ }
49
+ return new provider_1.Provider(name, undefined, { urn });
50
+ },
51
+ });
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;;;;;;;;;;;;;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAK5B,QAAA,aAAa,GAAmD,IAAW,CAAC;AACzF,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEjF,6CAA2B;AAC3B,yCAAsC;AAGtC,sBAAsB;AACtB,mCAAmC;AAI/B,wBAAM;AAHV,iCAAiC;AAI7B,sBAAK;AAGT,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,6CAA6C;gBAC9C,OAAO,IAAI,qBAAa,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAC3D;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAA;AAClF,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,WAAW,EAAE;IAChD,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,iBAAiB,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAA2B,EAAE;QACpF,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,mBAAQ,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;CACJ,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "pulumi-namecheap",
3
+ "description": "A Pulumi provider for managing Namecheap domain records and DNS configuration, dynamically bridged from the Terraform Namecheap provider with support for A, AAAA, CNAME, MX, TXT records and email services.",
4
+ "version": "2.2.12",
5
+ "homepage": "https://github.com/hckhanh/pulumi-any-terraform",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/hckhanh/pulumi-any-terraform.git",
9
+ "directory": "packages/namecheap"
10
+ },
11
+ "private": false,
12
+ "main": "./bin/index.js",
13
+ "module": "./bin/index.js",
14
+ "types": "./bin/index.d.ts",
15
+ "exports": {
16
+ ".": "./bin/index.js",
17
+ "./package.json": "./package.json"
18
+ },
19
+ "dependencies": {
20
+ "async-mutex": "0.5.0"
21
+ },
22
+ "devDependencies": {
23
+ "@pulumi/pulumi": "3.198.0",
24
+ "@types/node": "24.5.2",
25
+ "typescript": "5.9.2"
26
+ },
27
+ "peerDependencies": {
28
+ "@pulumi/pulumi": ">=3.190.0 <4"
29
+ },
30
+ "files": [
31
+ "bin",
32
+ "README.md"
33
+ ],
34
+ "keywords": [
35
+ "pulumi",
36
+ "namecheap",
37
+ "dns",
38
+ "domain",
39
+ "records",
40
+ "terraform",
41
+ "provider",
42
+ "infrastructure",
43
+ "domain-management",
44
+ "dns-records",
45
+ "email-service"
46
+ ],
47
+ "license": "MIT",
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "pulumi": {
52
+ "resource": true,
53
+ "name": "terraform-provider",
54
+ "version": "0.14.0",
55
+ "parameterization": {
56
+ "name": "namecheap",
57
+ "version": "2.2.0",
58
+ "value": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL25hbWVjaGVhcC9uYW1lY2hlYXAiLCJ2ZXJzaW9uIjoiMi4yLjAifX0="
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,79 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * The provider type for the namecheap package. By default, resources use package-wide configuration
4
+ * settings, however an explicit `Provider` instance may be created and passed during resource
5
+ * construction to achieve fine-grained programmatic control over provider settings. See the
6
+ * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
7
+ */
8
+ export declare class Provider extends pulumi.ProviderResource {
9
+ /**
10
+ * Returns true if the given object is an instance of Provider. This is designed to work even
11
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
12
+ */
13
+ static isInstance(obj: any): obj is Provider;
14
+ /**
15
+ * The namecheap API key
16
+ */
17
+ readonly apiKey: pulumi.Output<string>;
18
+ /**
19
+ * A registered api user for namecheap
20
+ */
21
+ readonly apiUser: pulumi.Output<string>;
22
+ /**
23
+ * Client IP address
24
+ */
25
+ readonly clientIp: pulumi.Output<string | undefined>;
26
+ /**
27
+ * A registered user name for namecheap
28
+ */
29
+ readonly userName: pulumi.Output<string>;
30
+ /**
31
+ * Create a Provider resource with the given unique name, arguments, and options.
32
+ *
33
+ * @param name The _unique_ name of the resource.
34
+ * @param args The arguments to use to populate this resource's properties.
35
+ * @param opts A bag of options that control this resource's behavior.
36
+ */
37
+ constructor(name: string, args: ProviderArgs, opts?: pulumi.ResourceOptions);
38
+ /**
39
+ * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
40
+ */
41
+ terraformConfig(): pulumi.Output<{
42
+ [key: string]: any;
43
+ }>;
44
+ }
45
+ /**
46
+ * The set of arguments for constructing a Provider resource.
47
+ */
48
+ export interface ProviderArgs {
49
+ /**
50
+ * The namecheap API key
51
+ */
52
+ apiKey: pulumi.Input<string>;
53
+ /**
54
+ * A registered api user for namecheap
55
+ */
56
+ apiUser: pulumi.Input<string>;
57
+ /**
58
+ * Client IP address
59
+ */
60
+ clientIp?: pulumi.Input<string>;
61
+ /**
62
+ * Use sandbox API endpoints
63
+ */
64
+ useSandbox?: pulumi.Input<boolean>;
65
+ /**
66
+ * A registered user name for namecheap
67
+ */
68
+ userName: pulumi.Input<string>;
69
+ }
70
+ export declare namespace Provider {
71
+ /**
72
+ * The results of the Provider.terraformConfig method.
73
+ */
74
+ interface TerraformConfigResult {
75
+ readonly result: {
76
+ [key: string]: any;
77
+ };
78
+ }
79
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Provider = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * The provider type for the namecheap package. By default, resources use package-wide configuration
10
+ * settings, however an explicit `Provider` instance may be created and passed during resource
11
+ * construction to achieve fine-grained programmatic control over provider settings. See the
12
+ * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
13
+ */
14
+ class Provider extends pulumi.ProviderResource {
15
+ /**
16
+ * Returns true if the given object is an instance of Provider. This is designed to work even
17
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
18
+ */
19
+ static isInstance(obj) {
20
+ if (obj === undefined || obj === null) {
21
+ return false;
22
+ }
23
+ return obj['__pulumiType'] === "pulumi:providers:" + Provider.__pulumiType;
24
+ }
25
+ /**
26
+ * Create a Provider resource with the given unique name, arguments, and options.
27
+ *
28
+ * @param name The _unique_ name of the resource.
29
+ * @param args The arguments to use to populate this resource's properties.
30
+ * @param opts A bag of options that control this resource's behavior.
31
+ */
32
+ constructor(name, args, opts) {
33
+ let resourceInputs = {};
34
+ opts = opts || {};
35
+ {
36
+ if (args?.apiKey === undefined && !opts.urn) {
37
+ throw new Error("Missing required property 'apiKey'");
38
+ }
39
+ if (args?.apiUser === undefined && !opts.urn) {
40
+ throw new Error("Missing required property 'apiUser'");
41
+ }
42
+ if (args?.userName === undefined && !opts.urn) {
43
+ throw new Error("Missing required property 'userName'");
44
+ }
45
+ resourceInputs["apiKey"] = args?.apiKey;
46
+ resourceInputs["apiUser"] = args?.apiUser;
47
+ resourceInputs["clientIp"] = args?.clientIp;
48
+ resourceInputs["useSandbox"] = pulumi.output(args?.useSandbox).apply(JSON.stringify);
49
+ resourceInputs["userName"] = args?.userName;
50
+ }
51
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
52
+ super(Provider.__pulumiType, name, resourceInputs, opts, false /*dependency*/, utilities.getPackage());
53
+ }
54
+ /**
55
+ * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
56
+ */
57
+ terraformConfig() {
58
+ const result = pulumi.runtime.call("pulumi:providers:namecheap/terraformConfig", {
59
+ "__self__": this,
60
+ }, this, utilities.getPackage());
61
+ return result.result;
62
+ }
63
+ }
64
+ exports.Provider = Provider;
65
+ /** @internal */
66
+ Provider.__pulumiType = 'namecheap';
67
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAIjD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/E,CAAC;IAmBD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAkB,EAAE,IAA6B;QACvE,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,CAAC;YACG,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC5D,CAAC;YACD,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;YAC5C,cAAc,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrF,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChD,CAAC;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED;;OAEG;IACH,eAAe;QACX,MAAM,MAAM,GAAkD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE;YAC5H,UAAU,EAAE,IAAI;SACnB,EAAE,IAAI,EAAE,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;;AAtEL,4BAuEC;AAtEG,gBAAgB;AACO,qBAAY,GAAG,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ import * as input from "./input";
2
+ import * as output from "./output";
3
+ export { input, output, };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.output = exports.input = void 0;
6
+ // Export sub-modules:
7
+ const input = require("./input");
8
+ exports.input = input;
9
+ const output = require("./output");
10
+ exports.output = output;
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAIjF,sBAAsB;AACtB,iCAAiC;AAI7B,sBAAK;AAHT,mCAAmC;AAI/B,wBAAM"}
@@ -0,0 +1,23 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ export interface DomainRecordsRecord {
3
+ /**
4
+ * Possible values are URL or IP address. The value for this parameter is based on record type
5
+ */
6
+ address: pulumi.Input<string>;
7
+ /**
8
+ * Sub-domain/hostname to create the record for
9
+ */
10
+ hostname: pulumi.Input<string>;
11
+ /**
12
+ * MX preference for host. Applicable for MX records only
13
+ */
14
+ mxPref?: pulumi.Input<number>;
15
+ /**
16
+ * Time to live for all record types. Possible values: any value between 60 to 60000
17
+ */
18
+ ttl?: pulumi.Input<number>;
19
+ /**
20
+ * Possible values: A, AAAA, ALIAS, CAA, CNAME, MX, MXE, NS, TXT, URL, URL301, FRAME
21
+ */
22
+ type: pulumi.Input<string>;
23
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.js","sourceRoot":"","sources":["../../types/input.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"}
@@ -0,0 +1,22 @@
1
+ export interface DomainRecordsRecord {
2
+ /**
3
+ * Possible values are URL or IP address. The value for this parameter is based on record type
4
+ */
5
+ address: string;
6
+ /**
7
+ * Sub-domain/hostname to create the record for
8
+ */
9
+ hostname: string;
10
+ /**
11
+ * MX preference for host. Applicable for MX records only
12
+ */
13
+ mxPref?: number;
14
+ /**
15
+ * Time to live for all record types. Possible values: any value between 60 to 60000
16
+ */
17
+ ttl?: number;
18
+ /**
19
+ * Possible values: A, AAAA, ALIAS, CAA, CNAME, MX, MXE, NS, TXT, URL, URL301, FRAME
20
+ */
21
+ type: string;
22
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../types/output.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF"}
@@ -0,0 +1,5 @@
1
+ export declare function getEnv(...vars: string[]): string | undefined;
2
+ export declare function getEnvBoolean(...vars: string[]): boolean | undefined;
3
+ export declare function getEnvNumber(...vars: string[]): number | undefined;
4
+ export declare function getVersion(): string;
5
+ export declare function getPackage(): Promise<string | undefined>;
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.getEnv = getEnv;
6
+ exports.getEnvBoolean = getEnvBoolean;
7
+ exports.getEnvNumber = getEnvNumber;
8
+ exports.getVersion = getVersion;
9
+ exports.resourceOptsDefaults = resourceOptsDefaults;
10
+ exports.lazyLoad = lazyLoad;
11
+ exports.callAsync = callAsync;
12
+ exports.getPackage = getPackage;
13
+ const resproto = require("@pulumi/pulumi/proto/resource_pb");
14
+ const mutex = require("async-mutex");
15
+ const runtime = require("@pulumi/pulumi/runtime");
16
+ function getEnv(...vars) {
17
+ for (const v of vars) {
18
+ const value = process.env[v];
19
+ if (value) {
20
+ return value;
21
+ }
22
+ }
23
+ return undefined;
24
+ }
25
+ function getEnvBoolean(...vars) {
26
+ const s = getEnv(...vars);
27
+ if (s !== undefined) {
28
+ // NOTE: these values are taken from https://golang.org/src/strconv/atob.go?s=351:391#L1, which is what
29
+ // Terraform uses internally when parsing boolean values.
30
+ if (["1", "t", "T", "true", "TRUE", "True"].find(v => v === s) !== undefined) {
31
+ return true;
32
+ }
33
+ if (["0", "f", "F", "false", "FALSE", "False"].find(v => v === s) !== undefined) {
34
+ return false;
35
+ }
36
+ }
37
+ return undefined;
38
+ }
39
+ function getEnvNumber(...vars) {
40
+ const s = getEnv(...vars);
41
+ if (s !== undefined) {
42
+ const f = parseFloat(s);
43
+ if (!isNaN(f)) {
44
+ return f;
45
+ }
46
+ }
47
+ return undefined;
48
+ }
49
+ function getVersion() {
50
+ let version = require('./package.json').version;
51
+ // Node allows for the version to be prefixed by a "v", while semver doesn't.
52
+ // If there is a v, strip it off.
53
+ if (version.indexOf('v') === 0) {
54
+ version = version.slice(1);
55
+ }
56
+ return version;
57
+ }
58
+ /** @internal */
59
+ function resourceOptsDefaults() {
60
+ return { version: getVersion() };
61
+ }
62
+ /** @internal */
63
+ function lazyLoad(exports, props, loadModule) {
64
+ for (let property of props) {
65
+ Object.defineProperty(exports, property, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return loadModule()[property];
69
+ },
70
+ });
71
+ }
72
+ }
73
+ /** @internal */
74
+ async function callAsync(tok, props, res, opts) {
75
+ const o = runtime.call(tok, props, res);
76
+ const value = await o.promise(true /*withUnknowns*/);
77
+ const isKnown = await o.isKnown;
78
+ const isSecret = await o.isSecret;
79
+ const problem = !isKnown ? "an unknown value"
80
+ : isSecret ? "a secret value"
81
+ : undefined;
82
+ // Ingoring o.resources silently. They are typically non-empty, r.f() calls include r as a dependency.
83
+ if (problem) {
84
+ throw new Error(`Plain resource method "${tok}" incorrectly returned ${problem}. ` +
85
+ "This is an error in the provider, please report this to the provider developer.");
86
+ }
87
+ // Extract a single property if requested.
88
+ if (opts && opts.property) {
89
+ return value[opts.property];
90
+ }
91
+ return value;
92
+ }
93
+ const _packageLock = new mutex.Mutex();
94
+ var _packageRef = undefined;
95
+ async function getPackage() {
96
+ if (_packageRef === undefined) {
97
+ if (!runtime.supportsParameterization()) {
98
+ throw new Error("The Pulumi CLI does not support parameterization. Please update the Pulumi CLI");
99
+ }
100
+ await _packageLock.acquire();
101
+ if (_packageRef === undefined) {
102
+ const monitor = runtime.getMonitor();
103
+ const params = new resproto.Parameterization();
104
+ params.setName("namecheap");
105
+ params.setVersion("2.2.0");
106
+ params.setValue(Uint8Array.from(atob("eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL25hbWVjaGVhcC9uYW1lY2hlYXAiLCJ2ZXJzaW9uIjoiMi4yLjAifX0="), c => c.charCodeAt(0)));
107
+ const req = new resproto.RegisterPackageRequest();
108
+ req.setName("terraform-provider");
109
+ req.setVersion("0.14.0");
110
+ req.setDownloadUrl("");
111
+ req.setParameterization(params);
112
+ const resp = await new Promise((resolve, reject) => {
113
+ monitor.registerPackage(req, (err, resp) => {
114
+ if (err) {
115
+ reject(err);
116
+ }
117
+ else {
118
+ resolve(resp);
119
+ }
120
+ });
121
+ });
122
+ _packageRef = resp.getRef();
123
+ }
124
+ _packageLock.release();
125
+ }
126
+ return _packageRef;
127
+ }
128
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pulumi-namecheap",
3
3
  "description": "A Pulumi provider for managing Namecheap domain records and DNS configuration, dynamically bridged from the Terraform Namecheap provider with support for A, AAAA, CNAME, MX, TXT records and email services.",
4
- "version": "2.2.10",
4
+ "version": "2.2.12",
5
5
  "homepage": "https://github.com/hckhanh/pulumi-any-terraform",
6
6
  "repository": {
7
7
  "type": "git",
@@ -20,12 +20,12 @@
20
20
  "async-mutex": "0.5.0"
21
21
  },
22
22
  "devDependencies": {
23
- "@pulumi/pulumi": "3.190.0",
24
- "@types/node": "24.2.1",
23
+ "@pulumi/pulumi": "3.198.0",
24
+ "@types/node": "24.5.2",
25
25
  "typescript": "5.9.2"
26
26
  },
27
27
  "peerDependencies": {
28
- "@pulumi/pulumi": ">=3.190.0"
28
+ "@pulumi/pulumi": ">=3.190.0 <4"
29
29
  },
30
30
  "files": [
31
31
  "bin",
@@ -51,7 +51,7 @@
51
51
  "pulumi": {
52
52
  "resource": true,
53
53
  "name": "terraform-provider",
54
- "version": "0.8.0",
54
+ "version": "0.14.0",
55
55
  "parameterization": {
56
56
  "name": "namecheap",
57
57
  "version": "2.2.0",