@unstablestudios/terraform 0.0.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 (92) hide show
  1. package/README.md +312 -0
  2. package/dist/config/backend.d.ts +118 -0
  3. package/dist/config/backend.d.ts.map +1 -0
  4. package/dist/config/backend.js +153 -0
  5. package/dist/config/backend.js.map +1 -0
  6. package/dist/config/index.d.ts +6 -0
  7. package/dist/config/index.d.ts.map +1 -0
  8. package/dist/config/index.js +4 -0
  9. package/dist/config/index.js.map +1 -0
  10. package/dist/config/terraform.d.ts +157 -0
  11. package/dist/config/terraform.d.ts.map +1 -0
  12. package/dist/config/terraform.js +211 -0
  13. package/dist/config/terraform.js.map +1 -0
  14. package/dist/config/terraform.test.d.ts +2 -0
  15. package/dist/config/terraform.test.d.ts.map +1 -0
  16. package/dist/config/terraform.test.js +240 -0
  17. package/dist/config/terraform.test.js.map +1 -0
  18. package/dist/config/tfvars.d.ts +90 -0
  19. package/dist/config/tfvars.d.ts.map +1 -0
  20. package/dist/config/tfvars.js +133 -0
  21. package/dist/config/tfvars.js.map +1 -0
  22. package/dist/config/tfvars.test.d.ts +2 -0
  23. package/dist/config/tfvars.test.d.ts.map +1 -0
  24. package/dist/config/tfvars.test.js +187 -0
  25. package/dist/config/tfvars.test.js.map +1 -0
  26. package/dist/hcl/generator.d.ts +59 -0
  27. package/dist/hcl/generator.d.ts.map +1 -0
  28. package/dist/hcl/generator.js +401 -0
  29. package/dist/hcl/generator.js.map +1 -0
  30. package/dist/hcl/generator.test.d.ts +2 -0
  31. package/dist/hcl/generator.test.d.ts.map +1 -0
  32. package/dist/hcl/generator.test.js +280 -0
  33. package/dist/hcl/generator.test.js.map +1 -0
  34. package/dist/hcl/index.d.ts +5 -0
  35. package/dist/hcl/index.d.ts.map +1 -0
  36. package/dist/hcl/index.js +3 -0
  37. package/dist/hcl/index.js.map +1 -0
  38. package/dist/hcl/writer.d.ts +35 -0
  39. package/dist/hcl/writer.d.ts.map +1 -0
  40. package/dist/hcl/writer.js +154 -0
  41. package/dist/hcl/writer.js.map +1 -0
  42. package/dist/index.d.mts +970 -0
  43. package/dist/index.d.ts +5 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +9 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/index.mjs +1283 -0
  48. package/dist/modules/cloudflare/d1.d.ts +39 -0
  49. package/dist/modules/cloudflare/d1.d.ts.map +1 -0
  50. package/dist/modules/cloudflare/d1.js +55 -0
  51. package/dist/modules/cloudflare/d1.js.map +1 -0
  52. package/dist/modules/cloudflare/index.d.ts +43 -0
  53. package/dist/modules/cloudflare/index.d.ts.map +1 -0
  54. package/dist/modules/cloudflare/index.js +44 -0
  55. package/dist/modules/cloudflare/index.js.map +1 -0
  56. package/dist/modules/cloudflare/kv.d.ts +57 -0
  57. package/dist/modules/cloudflare/kv.d.ts.map +1 -0
  58. package/dist/modules/cloudflare/kv.js +75 -0
  59. package/dist/modules/cloudflare/kv.js.map +1 -0
  60. package/dist/modules/cloudflare/r2.d.ts +49 -0
  61. package/dist/modules/cloudflare/r2.d.ts.map +1 -0
  62. package/dist/modules/cloudflare/r2.js +70 -0
  63. package/dist/modules/cloudflare/r2.js.map +1 -0
  64. package/dist/modules/cloudflare/worker.d.ts +104 -0
  65. package/dist/modules/cloudflare/worker.d.ts.map +1 -0
  66. package/dist/modules/cloudflare/worker.js +128 -0
  67. package/dist/modules/cloudflare/worker.js.map +1 -0
  68. package/dist/modules/index.d.ts +4 -0
  69. package/dist/modules/index.d.ts.map +1 -0
  70. package/dist/modules/index.js +4 -0
  71. package/dist/modules/index.js.map +1 -0
  72. package/dist/modules/types.d.ts +97 -0
  73. package/dist/modules/types.d.ts.map +1 -0
  74. package/dist/modules/types.js +106 -0
  75. package/dist/modules/types.js.map +1 -0
  76. package/dist/modules/types.test.d.ts +2 -0
  77. package/dist/modules/types.test.d.ts.map +1 -0
  78. package/dist/modules/types.test.js +167 -0
  79. package/dist/modules/types.test.js.map +1 -0
  80. package/dist/types/config.d.ts +140 -0
  81. package/dist/types/config.d.ts.map +1 -0
  82. package/dist/types/config.js +16 -0
  83. package/dist/types/config.js.map +1 -0
  84. package/dist/types/config.test.d.ts +2 -0
  85. package/dist/types/config.test.d.ts.map +1 -0
  86. package/dist/types/config.test.js +36 -0
  87. package/dist/types/config.test.js.map +1 -0
  88. package/dist/types/index.d.ts +2 -0
  89. package/dist/types/index.d.ts.map +1 -0
  90. package/dist/types/index.js +2 -0
  91. package/dist/types/index.js.map +1 -0
  92. package/package.json +27 -0
@@ -0,0 +1,39 @@
1
+ import type { HclExpression, ResourceConfig } from '../../types/config';
2
+ /**
3
+ * Cloudflare D1 database configuration
4
+ */
5
+ export interface D1DatabaseConfig {
6
+ /** Database name */
7
+ name: string;
8
+ /** Account ID */
9
+ accountId: string | HclExpression;
10
+ }
11
+ /**
12
+ * Create a Cloudflare D1 database resource
13
+ */
14
+ export declare function cloudflareD1Database(config: D1DatabaseConfig): ResourceConfig;
15
+ /**
16
+ * Create a reference to a D1 database
17
+ */
18
+ export declare function d1DatabaseRef(name: string, attribute?: string): HclExpression;
19
+ /**
20
+ * Create multiple D1 databases for different environments
21
+ */
22
+ export declare function cloudflareD1Databases(accountId: string | HclExpression, baseName: string, environments?: string[]): ResourceConfig[];
23
+ /**
24
+ * D1 database outputs configuration
25
+ */
26
+ export interface D1OutputsConfig {
27
+ /** Database resource name */
28
+ resourceName: string;
29
+ /** Output name prefix */
30
+ prefix?: string;
31
+ }
32
+ /**
33
+ * Create outputs for a D1 database
34
+ */
35
+ export declare function d1DatabaseOutputs(config: D1OutputsConfig): Record<string, {
36
+ value: HclExpression;
37
+ description?: string;
38
+ }>;
39
+ //# sourceMappingURL=d1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d1.d.ts","sourceRoot":"","sources":["../../../src/modules/cloudflare/d1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGxE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CAe7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,aAAa,CAE3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,aAAa,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAM,EAA6C,GAChE,cAAc,EAAE,CASlB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAazH"}
@@ -0,0 +1,55 @@
1
+ import { expr } from '../../types/config';
2
+ /**
3
+ * Create a Cloudflare D1 database resource
4
+ */
5
+ export function cloudflareD1Database(config) {
6
+ const resourceName = config.name
7
+ .toLowerCase()
8
+ .replace(/[^a-zA-Z0-9]/g, '_')
9
+ .replace(/_+/g, '_')
10
+ .replace(/^_|_$/g, '');
11
+ return {
12
+ type: 'cloudflare_d1_database',
13
+ name: resourceName,
14
+ config: {
15
+ account_id: config.accountId,
16
+ name: config.name,
17
+ },
18
+ };
19
+ }
20
+ /**
21
+ * Create a reference to a D1 database
22
+ */
23
+ export function d1DatabaseRef(name, attribute = 'id') {
24
+ return expr(`cloudflare_d1_database.${name}.${attribute}`);
25
+ }
26
+ /**
27
+ * Create multiple D1 databases for different environments
28
+ */
29
+ export function cloudflareD1Databases(accountId, baseName, environments = ['production', 'staging', 'development']) {
30
+ return environments.map((env) => ({
31
+ type: 'cloudflare_d1_database',
32
+ name: `${baseName.replace(/-/g, '_')}_${env}`,
33
+ config: {
34
+ account_id: accountId,
35
+ name: `${baseName}-${env}`,
36
+ },
37
+ }));
38
+ }
39
+ /**
40
+ * Create outputs for a D1 database
41
+ */
42
+ export function d1DatabaseOutputs(config) {
43
+ const prefix = config.prefix ?? config.resourceName;
44
+ return {
45
+ [`${prefix}_id`]: {
46
+ value: d1DatabaseRef(config.resourceName, 'id'),
47
+ description: `ID of the ${config.resourceName} D1 database`,
48
+ },
49
+ [`${prefix}_name`]: {
50
+ value: d1DatabaseRef(config.resourceName, 'name'),
51
+ description: `Name of the ${config.resourceName} D1 database`,
52
+ },
53
+ };
54
+ }
55
+ //# sourceMappingURL=d1.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d1.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/d1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAY1C;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAwB;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI;SAC7B,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IAC1D,OAAO,IAAI,CAAC,0BAA0B,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAiC,EACjC,QAAgB,EAChB,eAAyB,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;IAEjE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE;QAC7C,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;SAC3B;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC;IAEpD,OAAO;QACL,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE;YAChB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC;YAC/C,WAAW,EAAE,aAAa,MAAM,CAAC,YAAY,cAAc;SAC5D;QACD,CAAC,GAAG,MAAM,OAAO,CAAC,EAAE;YAClB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC;YACjD,WAAW,EAAE,eAAe,MAAM,CAAC,YAAY,cAAc;SAC9D;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,43 @@
1
+ export { cloudflareWorkerScript, cloudflareWorkerRoute, cloudflareWorkerDomain, workerScriptRef, } from './worker';
2
+ export type { WorkerScriptConfig, WorkerKvBinding, WorkerD1Binding, WorkerR2Binding, WorkerServiceBinding, WorkerRouteConfig, WorkerDomainConfig, } from './worker';
3
+ export { cloudflareKvNamespace, cloudflareKvPair, cloudflareKvNamespaces, cloudflareKvBulk, kvNamespaceRef, } from './kv';
4
+ export type { KvNamespaceConfig, KvPairConfig, BulkKvConfig } from './kv';
5
+ export { cloudflareD1Database, cloudflareD1Databases, d1DatabaseRef, d1DatabaseOutputs, } from './d1';
6
+ export type { D1DatabaseConfig, D1OutputsConfig } from './d1';
7
+ export { cloudflareR2Bucket, cloudflareR2Buckets, cloudflareR2BucketsForEnvs, r2BucketRef, r2BucketOutputs, } from './r2';
8
+ export type { R2BucketConfig, R2BucketWithCorsConfig } from './r2';
9
+ /**
10
+ * Cloudflare provider required_providers configuration
11
+ */
12
+ export declare const cloudflareProvider: {
13
+ source: string;
14
+ version: string;
15
+ };
16
+ /**
17
+ * Common Cloudflare variable definitions
18
+ */
19
+ export declare const cloudflareVariables: {
20
+ account_id: {
21
+ type: string;
22
+ description: string;
23
+ sensitive: boolean;
24
+ };
25
+ api_token: {
26
+ type: string;
27
+ description: string;
28
+ sensitive: boolean;
29
+ };
30
+ zone_id: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ };
35
+ /**
36
+ * Create a reference to var.cloudflare_account_id
37
+ */
38
+ export declare const cfAccountId: import("../..").HclExpression;
39
+ /**
40
+ * Create a reference to var.cloudflare_zone_id
41
+ */
42
+ export declare const cfZoneId: import("../..").HclExpression;
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/cloudflare/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,MAAM,CAAC;AACd,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAG1E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,MAAM,CAAC;AACd,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAG9D,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,eAAe,GAChB,MAAM,MAAM,CAAC;AACd,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,MAAM,CAAC;AAInE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;CAe/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,+BAAoC,CAAC;AAE7D;;GAEG;AACH,eAAO,MAAM,QAAQ,+BAAiC,CAAC"}
@@ -0,0 +1,44 @@
1
+ // Worker resources
2
+ export { cloudflareWorkerScript, cloudflareWorkerRoute, cloudflareWorkerDomain, workerScriptRef, } from './worker';
3
+ // KV resources
4
+ export { cloudflareKvNamespace, cloudflareKvPair, cloudflareKvNamespaces, cloudflareKvBulk, kvNamespaceRef, } from './kv';
5
+ // D1 resources
6
+ export { cloudflareD1Database, cloudflareD1Databases, d1DatabaseRef, d1DatabaseOutputs, } from './d1';
7
+ // R2 resources
8
+ export { cloudflareR2Bucket, cloudflareR2Buckets, cloudflareR2BucketsForEnvs, r2BucketRef, r2BucketOutputs, } from './r2';
9
+ import { expr } from '../../types/config';
10
+ /**
11
+ * Cloudflare provider required_providers configuration
12
+ */
13
+ export const cloudflareProvider = {
14
+ source: 'cloudflare/cloudflare',
15
+ version: '~> 4.0',
16
+ };
17
+ /**
18
+ * Common Cloudflare variable definitions
19
+ */
20
+ export const cloudflareVariables = {
21
+ account_id: {
22
+ type: 'string',
23
+ description: 'Cloudflare Account ID',
24
+ sensitive: true,
25
+ },
26
+ api_token: {
27
+ type: 'string',
28
+ description: 'Cloudflare API Token',
29
+ sensitive: true,
30
+ },
31
+ zone_id: {
32
+ type: 'string',
33
+ description: 'Cloudflare Zone ID',
34
+ },
35
+ };
36
+ /**
37
+ * Create a reference to var.cloudflare_account_id
38
+ */
39
+ export const cfAccountId = expr('var.cloudflare_account_id');
40
+ /**
41
+ * Create a reference to var.cloudflare_zone_id
42
+ */
43
+ export const cfZoneId = expr('var.cloudflare_zone_id');
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,GAChB,MAAM,UAAU,CAAC;AAWlB,eAAe;AACf,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,GACf,MAAM,MAAM,CAAC;AAGd,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,GAClB,MAAM,MAAM,CAAC;AAGd,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,eAAe,GAChB,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uBAAuB;QACpC,SAAS,EAAE,IAAI;KAChB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE,IAAI;KAChB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oBAAoB;KAClC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { HclExpression, ResourceConfig } from '../../types/config';
2
+ /**
3
+ * Cloudflare KV namespace configuration
4
+ */
5
+ export interface KvNamespaceConfig {
6
+ /** Namespace title */
7
+ title: string;
8
+ /** Account ID */
9
+ accountId: string | HclExpression;
10
+ }
11
+ /**
12
+ * Create a Cloudflare KV namespace resource
13
+ */
14
+ export declare function cloudflareKvNamespace(config: KvNamespaceConfig): ResourceConfig;
15
+ /**
16
+ * Cloudflare KV pair configuration
17
+ */
18
+ export interface KvPairConfig {
19
+ /** Namespace ID */
20
+ namespaceId: string | HclExpression;
21
+ /** Account ID */
22
+ accountId: string | HclExpression;
23
+ /** Key name */
24
+ key: string;
25
+ /** Value */
26
+ value: string | HclExpression;
27
+ }
28
+ /**
29
+ * Create a Cloudflare KV pair resource
30
+ */
31
+ export declare function cloudflareKvPair(config: KvPairConfig): ResourceConfig;
32
+ /**
33
+ * Create a reference to a KV namespace
34
+ */
35
+ export declare function kvNamespaceRef(name: string, attribute?: string): HclExpression;
36
+ /**
37
+ * Create multiple KV namespaces for different environments
38
+ */
39
+ export declare function cloudflareKvNamespaces(accountId: string | HclExpression, baseName: string, environments?: string[]): ResourceConfig[];
40
+ /**
41
+ * Bulk KV configuration
42
+ */
43
+ export interface BulkKvConfig {
44
+ /** Account ID */
45
+ accountId: string | HclExpression;
46
+ /** Namespace ID */
47
+ namespaceId: string | HclExpression;
48
+ /** Key-value pairs */
49
+ entries: Record<string, string>;
50
+ /** Resource name prefix */
51
+ namePrefix?: string;
52
+ }
53
+ /**
54
+ * Create multiple KV pairs from an object
55
+ */
56
+ export declare function cloudflareKvBulk(config: BulkKvConfig): ResourceConfig[];
57
+ //# sourceMappingURL=kv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv.d.ts","sourceRoot":"","sources":["../../../src/modules/cloudflare/kv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGxE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAe/E;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;IACpC,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY;IACZ,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CAiBrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,aAAa,CAE5E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,GAAG,aAAa,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAM,EAA6C,GAChE,cAAc,EAAE,CASlB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;IACpC,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,EAAE,CAavE"}
@@ -0,0 +1,75 @@
1
+ import { expr } from '../../types/config';
2
+ /**
3
+ * Create a Cloudflare KV namespace resource
4
+ */
5
+ export function cloudflareKvNamespace(config) {
6
+ const resourceName = config.title
7
+ .toLowerCase()
8
+ .replace(/[^a-zA-Z0-9]/g, '_')
9
+ .replace(/_+/g, '_')
10
+ .replace(/^_|_$/g, '');
11
+ return {
12
+ type: 'cloudflare_workers_kv_namespace',
13
+ name: resourceName,
14
+ config: {
15
+ account_id: config.accountId,
16
+ title: config.title,
17
+ },
18
+ };
19
+ }
20
+ /**
21
+ * Create a Cloudflare KV pair resource
22
+ */
23
+ export function cloudflareKvPair(config) {
24
+ const resourceName = config.key
25
+ .toLowerCase()
26
+ .replace(/[^a-zA-Z0-9]/g, '_')
27
+ .replace(/_+/g, '_')
28
+ .replace(/^_|_$/g, '');
29
+ return {
30
+ type: 'cloudflare_workers_kv',
31
+ name: resourceName,
32
+ config: {
33
+ account_id: config.accountId,
34
+ namespace_id: config.namespaceId,
35
+ key: config.key,
36
+ value: config.value,
37
+ },
38
+ };
39
+ }
40
+ /**
41
+ * Create a reference to a KV namespace
42
+ */
43
+ export function kvNamespaceRef(name, attribute = 'id') {
44
+ return expr(`cloudflare_workers_kv_namespace.${name}.${attribute}`);
45
+ }
46
+ /**
47
+ * Create multiple KV namespaces for different environments
48
+ */
49
+ export function cloudflareKvNamespaces(accountId, baseName, environments = ['production', 'staging', 'development']) {
50
+ return environments.map((env) => ({
51
+ type: 'cloudflare_workers_kv_namespace',
52
+ name: `${baseName.replace(/-/g, '_')}_${env}`,
53
+ config: {
54
+ account_id: accountId,
55
+ title: `${baseName}-${env}`,
56
+ },
57
+ }));
58
+ }
59
+ /**
60
+ * Create multiple KV pairs from an object
61
+ */
62
+ export function cloudflareKvBulk(config) {
63
+ const prefix = config.namePrefix ?? 'kv';
64
+ return Object.entries(config.entries).map(([key, value], index) => ({
65
+ type: 'cloudflare_workers_kv',
66
+ name: `${prefix}_${index}`,
67
+ config: {
68
+ account_id: config.accountId,
69
+ namespace_id: config.namespaceId,
70
+ key,
71
+ value,
72
+ },
73
+ }));
74
+ }
75
+ //# sourceMappingURL=kv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/kv.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAY1C;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK;SAC9B,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,EAAE,iCAAiC;QACvC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB;KACF,CAAC;AACJ,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG;SAC5B,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,SAAS,GAAG,IAAI;IAC3D,OAAO,IAAI,CAAC,mCAAmC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiC,EACjC,QAAgB,EAChB,eAAyB,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC;IAEjE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,iCAAiC;QACvC,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE;QAC7C,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;SAC5B;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAEzC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE;QAC1B,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,GAAG;YACH,KAAK;SACN;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { HclExpression, ResourceConfig } from '../../types/config';
2
+ /**
3
+ * Cloudflare R2 bucket configuration
4
+ */
5
+ export interface R2BucketConfig {
6
+ /** Bucket name */
7
+ name: string;
8
+ /** Account ID */
9
+ accountId: string | HclExpression;
10
+ /** Location hint (optional) */
11
+ location?: 'wnam' | 'enam' | 'weur' | 'eeur' | 'apac';
12
+ }
13
+ /**
14
+ * Create a Cloudflare R2 bucket resource
15
+ */
16
+ export declare function cloudflareR2Bucket(config: R2BucketConfig): ResourceConfig;
17
+ /**
18
+ * Create a reference to an R2 bucket
19
+ */
20
+ export declare function r2BucketRef(name: string, attribute?: string): HclExpression;
21
+ /**
22
+ * Create multiple R2 buckets for different purposes
23
+ */
24
+ export declare function cloudflareR2Buckets(accountId: string | HclExpression, buckets: Array<{
25
+ name: string;
26
+ location?: R2BucketConfig['location'];
27
+ }>): ResourceConfig[];
28
+ /**
29
+ * R2 bucket with CORS configuration (note: CORS is configured via API, not Terraform)
30
+ * This creates outputs that can be used to configure CORS separately
31
+ */
32
+ export interface R2BucketWithCorsConfig extends R2BucketConfig {
33
+ /** Allowed origins for CORS */
34
+ corsOrigins?: string[];
35
+ /** Allowed methods for CORS */
36
+ corsMethods?: string[];
37
+ }
38
+ /**
39
+ * Create R2 bucket outputs
40
+ */
41
+ export declare function r2BucketOutputs(resourceName: string, prefix?: string): Record<string, {
42
+ value: HclExpression;
43
+ description?: string;
44
+ }>;
45
+ /**
46
+ * Create multiple R2 buckets for different environments
47
+ */
48
+ export declare function cloudflareR2BucketsForEnvs(accountId: string | HclExpression, baseName: string, environments?: string[], location?: R2BucketConfig['location']): ResourceConfig[];
49
+ //# sourceMappingURL=r2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../../src/modules/cloudflare/r2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAY,MAAM,oBAAoB,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAqBzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,aAAa,CAE3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,GAAG,aAAa,EACjC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC,GACtE,cAAc,EAAE,CAMlB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAahE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,GAAG,aAAa,EACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAM,EAA6C,EACjE,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GACpC,cAAc,EAAE,CAUlB"}
@@ -0,0 +1,70 @@
1
+ import { expr } from '../../types/config';
2
+ /**
3
+ * Create a Cloudflare R2 bucket resource
4
+ */
5
+ export function cloudflareR2Bucket(config) {
6
+ const resourceName = config.name
7
+ .toLowerCase()
8
+ .replace(/[^a-zA-Z0-9]/g, '_')
9
+ .replace(/_+/g, '_')
10
+ .replace(/^_|_$/g, '');
11
+ const resourceConfig = {
12
+ account_id: config.accountId,
13
+ name: config.name,
14
+ };
15
+ if (config.location) {
16
+ resourceConfig.location = config.location;
17
+ }
18
+ return {
19
+ type: 'cloudflare_r2_bucket',
20
+ name: resourceName,
21
+ config: resourceConfig,
22
+ };
23
+ }
24
+ /**
25
+ * Create a reference to an R2 bucket
26
+ */
27
+ export function r2BucketRef(name, attribute = 'name') {
28
+ return expr(`cloudflare_r2_bucket.${name}.${attribute}`);
29
+ }
30
+ /**
31
+ * Create multiple R2 buckets for different purposes
32
+ */
33
+ export function cloudflareR2Buckets(accountId, buckets) {
34
+ return buckets.map((bucket) => cloudflareR2Bucket({
35
+ accountId,
36
+ name: bucket.name,
37
+ location: bucket.location,
38
+ }));
39
+ }
40
+ /**
41
+ * Create R2 bucket outputs
42
+ */
43
+ export function r2BucketOutputs(resourceName, prefix) {
44
+ const outputPrefix = prefix ?? resourceName;
45
+ return {
46
+ [`${outputPrefix}_name`]: {
47
+ value: r2BucketRef(resourceName, 'name'),
48
+ description: `Name of the ${resourceName} R2 bucket`,
49
+ },
50
+ [`${outputPrefix}_id`]: {
51
+ value: r2BucketRef(resourceName, 'id'),
52
+ description: `ID of the ${resourceName} R2 bucket`,
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * Create multiple R2 buckets for different environments
58
+ */
59
+ export function cloudflareR2BucketsForEnvs(accountId, baseName, environments = ['production', 'staging', 'development'], location) {
60
+ return environments.map((env) => ({
61
+ type: 'cloudflare_r2_bucket',
62
+ name: `${baseName.replace(/-/g, '_')}_${env}`,
63
+ config: {
64
+ account_id: accountId,
65
+ name: `${baseName}-${env}`,
66
+ ...(location ? { location } : {}),
67
+ },
68
+ }));
69
+ }
70
+ //# sourceMappingURL=r2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2.js","sourceRoot":"","sources":["../../../src/modules/cloudflare/r2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAc1C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI;SAC7B,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEzB,MAAM,cAAc,GAA6B;QAC/C,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,IAAI,EAAE,MAAM,CAAC,IAAI;KAClB,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5C,CAAC;IAED,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,cAAc;KACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAS,GAAG,MAAM;IAC1D,OAAO,IAAI,CAAC,wBAAwB,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,SAAiC,EACjC,OAAuE;IAEvE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC;QAChD,SAAS;QACT,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC,CAAC;AACN,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,YAAoB,EACpB,MAAe;IAEf,MAAM,YAAY,GAAG,MAAM,IAAI,YAAY,CAAC;IAE5C,OAAO;QACL,CAAC,GAAG,YAAY,OAAO,CAAC,EAAE;YACxB,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC;YACxC,WAAW,EAAE,eAAe,YAAY,YAAY;SACrD;QACD,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE;YACtB,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC;YACtC,WAAW,EAAE,aAAa,YAAY,YAAY;SACnD;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAiC,EACjC,QAAgB,EAChB,eAAyB,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,CAAC,EACjE,QAAqC;IAErC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE;QAC7C,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE;YAC1B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC;KACF,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,104 @@
1
+ import type { HclExpression, ResourceConfig } from '../../types/config';
2
+ /**
3
+ * Cloudflare Worker script configuration
4
+ */
5
+ export interface WorkerScriptConfig {
6
+ /** Worker name */
7
+ name: string;
8
+ /** Account ID */
9
+ accountId: string | HclExpression;
10
+ /** Script content or path to script file */
11
+ content: string | HclExpression;
12
+ /** Module format (esm or service-worker) */
13
+ module?: boolean;
14
+ /** Compatibility date */
15
+ compatibilityDate?: string;
16
+ /** Compatibility flags */
17
+ compatibilityFlags?: string[];
18
+ /** Logpush enabled */
19
+ logpush?: boolean;
20
+ /** KV namespace bindings */
21
+ kvNamespaces?: WorkerKvBinding[];
22
+ /** D1 database bindings */
23
+ d1Databases?: WorkerD1Binding[];
24
+ /** R2 bucket bindings */
25
+ r2Buckets?: WorkerR2Binding[];
26
+ /** Environment variables (plain text) */
27
+ plainTextBindings?: Record<string, string>;
28
+ /** Secret bindings */
29
+ secretTextBindings?: Record<string, HclExpression>;
30
+ /** Service bindings */
31
+ serviceBindings?: WorkerServiceBinding[];
32
+ }
33
+ /**
34
+ * Worker KV namespace binding
35
+ */
36
+ export interface WorkerKvBinding {
37
+ name: string;
38
+ namespaceId: string | HclExpression;
39
+ }
40
+ /**
41
+ * Worker D1 database binding
42
+ */
43
+ export interface WorkerD1Binding {
44
+ name: string;
45
+ databaseId: string | HclExpression;
46
+ }
47
+ /**
48
+ * Worker R2 bucket binding
49
+ */
50
+ export interface WorkerR2Binding {
51
+ name: string;
52
+ bucketName: string | HclExpression;
53
+ }
54
+ /**
55
+ * Worker service binding
56
+ */
57
+ export interface WorkerServiceBinding {
58
+ name: string;
59
+ service: string;
60
+ environment?: string;
61
+ }
62
+ /**
63
+ * Create a Cloudflare Worker script resource
64
+ */
65
+ export declare function cloudflareWorkerScript(config: WorkerScriptConfig): ResourceConfig;
66
+ /**
67
+ * Cloudflare Worker route configuration
68
+ */
69
+ export interface WorkerRouteConfig {
70
+ /** Route pattern (e.g., "example.com/*") */
71
+ pattern: string;
72
+ /** Zone ID */
73
+ zoneId: string | HclExpression;
74
+ /** Script name (reference to worker script) */
75
+ scriptName: string | HclExpression;
76
+ }
77
+ /**
78
+ * Create a Cloudflare Worker route resource
79
+ */
80
+ export declare function cloudflareWorkerRoute(config: WorkerRouteConfig): ResourceConfig;
81
+ /**
82
+ * Cloudflare Worker custom domain configuration
83
+ */
84
+ export interface WorkerDomainConfig {
85
+ /** Account ID */
86
+ accountId: string | HclExpression;
87
+ /** Zone ID */
88
+ zoneId: string | HclExpression;
89
+ /** Hostname */
90
+ hostname: string;
91
+ /** Service (worker script name) */
92
+ service: string | HclExpression;
93
+ /** Environment (default: "production") */
94
+ environment?: string;
95
+ }
96
+ /**
97
+ * Create a Cloudflare Worker domain resource
98
+ */
99
+ export declare function cloudflareWorkerDomain(config: WorkerDomainConfig): ResourceConfig;
100
+ /**
101
+ * Create a reference to a worker script
102
+ */
103
+ export declare function workerScriptRef(name: string, attribute?: string): HclExpression;
104
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/modules/cloudflare/worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAY,MAAM,oBAAoB,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAChC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;IAChC,yBAAyB;IACzB,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;IAC9B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,sBAAsB;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnD,uBAAuB;IACvB,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,aAAa,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CA6FjF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,cAAc,CAe/E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iBAAiB;IACjB,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,cAAc;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;IAChC,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,cAAc,CAcjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,aAAa,CAE7E"}