cdk-turso 0.3.0 → 0.3.2

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/AGENTS.md CHANGED
@@ -32,10 +32,13 @@ Most config files are **generated by projen** and must NOT be edited directly. T
32
32
  ```
33
33
  src/
34
34
  index.ts # Barrel exports — all public symbols re-exported here
35
- turso-database.ts # Main CDK construct
36
- handler/index.ts # Lambda handler for CloudFormation custom resource (bundled via esbuild)
35
+ turso-database.ts # Main CDK construct for Turso databases
36
+ turso-auth-token.ts # Auth token generation construct
37
+ turso-provider.ts # Shared CloudFormation custom resource provider
38
+ handler/index.ts # Lambda handler for custom resources (bundled via esbuild)
37
39
  test/
38
40
  turso-database.test.ts # Construct unit tests (CDK assertions)
41
+ turso-auth-token.test.ts # Auth token construct tests
39
42
  handler.test.ts # Handler unit tests (Jest mocks)
40
43
  lib/ # Compiled output (generated, gitignored)
41
44
  dist/ # Distribution packages (generated, gitignored)
@@ -109,13 +112,13 @@ Biome is the sole linter and formatter. ESLint is disabled.
109
112
  - Extend `Construct` from `constructs`, not from `aws-cdk-lib`
110
113
  - Constructor signature: `constructor(scope: Construct, id: string, props: XxxProps)`
111
114
  - Call `super(scope, id)` first
112
- - Validate inputs in constructor with `throw new Error(...)` for bad values
115
+ - Validate inputs in constructor with `throw new Error(...)` for bad values (regex checks, length limits)
113
116
  - Custom resource pattern: Lambda Function → Provider → CustomResource
114
117
  - Expose outputs as `public readonly` properties via `cr.getAttString("AttrName")`
115
118
 
116
119
  ## Error Handling
117
120
 
118
- - **Constructor validation**: throw `new Error(...)` with clear messages for invalid props (regex checks, length limits)
121
+ - **Constructor validation**: throw `new Error(...)` with clear messages for invalid props
119
122
  - **Handler errors**: include HTTP status and response text: `throw new Error(\`Failed to create: ${response.status} ${errorText}\`)`
120
123
  - **Environment checks**: throw early if required env vars are missing
121
124
  - **Idempotent deletes**: tolerate 404 on delete operations
package/API.md CHANGED
@@ -43,7 +43,6 @@ new TursoAuthToken(scope: Construct, id: string, props: TursoAuthTokenProps)
43
43
  | **Name** | **Description** |
44
44
  | --- | --- |
45
45
  | <code><a href="#cdk-turso.TursoAuthToken.toString">toString</a></code> | Returns a string representation of this construct. |
46
- | <code><a href="#cdk-turso.TursoAuthToken.with">with</a></code> | Applies one or more mixins to this construct. |
47
46
 
48
47
  ---
49
48
 
@@ -55,27 +54,6 @@ public toString(): string
55
54
 
56
55
  Returns a string representation of this construct.
57
56
 
58
- ##### `with` <a name="with" id="cdk-turso.TursoAuthToken.with"></a>
59
-
60
- ```typescript
61
- public with(mixins: ...IMixin[]): IConstruct
62
- ```
63
-
64
- Applies one or more mixins to this construct.
65
-
66
- Mixins are applied in order. The list of constructs is captured at the
67
- start of the call, so constructs added by a mixin will not be visited.
68
- Use multiple `with()` calls if subsequent mixins should apply to added
69
- constructs.
70
-
71
- ###### `mixins`<sup>Required</sup> <a name="mixins" id="cdk-turso.TursoAuthToken.with.parameter.mixins"></a>
72
-
73
- - *Type:* ...constructs.IMixin[]
74
-
75
- The mixins to apply.
76
-
77
- ---
78
-
79
57
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
80
58
 
81
59
  | **Name** | **Description** |
@@ -191,7 +169,6 @@ new TursoDatabase(scope: Construct, id: string, props: TursoDatabaseProps)
191
169
  | **Name** | **Description** |
192
170
  | --- | --- |
193
171
  | <code><a href="#cdk-turso.TursoDatabase.toString">toString</a></code> | Returns a string representation of this construct. |
194
- | <code><a href="#cdk-turso.TursoDatabase.with">with</a></code> | Applies one or more mixins to this construct. |
195
172
 
196
173
  ---
197
174
 
@@ -203,27 +180,6 @@ public toString(): string
203
180
 
204
181
  Returns a string representation of this construct.
205
182
 
206
- ##### `with` <a name="with" id="cdk-turso.TursoDatabase.with"></a>
207
-
208
- ```typescript
209
- public with(mixins: ...IMixin[]): IConstruct
210
- ```
211
-
212
- Applies one or more mixins to this construct.
213
-
214
- Mixins are applied in order. The list of constructs is captured at the
215
- start of the call, so constructs added by a mixin will not be visited.
216
- Use multiple `with()` calls if subsequent mixins should apply to added
217
- constructs.
218
-
219
- ###### `mixins`<sup>Required</sup> <a name="mixins" id="cdk-turso.TursoDatabase.with.parameter.mixins"></a>
220
-
221
- - *Type:* ...constructs.IMixin[]
222
-
223
- The mixins to apply.
224
-
225
- ---
226
-
227
183
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
228
184
 
229
185
  | **Name** | **Description** |
@@ -366,7 +322,6 @@ new TursoProvider(scope: Construct, id: string, props: TursoProviderProps)
366
322
  | **Name** | **Description** |
367
323
  | --- | --- |
368
324
  | <code><a href="#cdk-turso.TursoProvider.toString">toString</a></code> | Returns a string representation of this construct. |
369
- | <code><a href="#cdk-turso.TursoProvider.with">with</a></code> | Applies one or more mixins to this construct. |
370
325
 
371
326
  ---
372
327
 
@@ -378,27 +333,6 @@ public toString(): string
378
333
 
379
334
  Returns a string representation of this construct.
380
335
 
381
- ##### `with` <a name="with" id="cdk-turso.TursoProvider.with"></a>
382
-
383
- ```typescript
384
- public with(mixins: ...IMixin[]): IConstruct
385
- ```
386
-
387
- Applies one or more mixins to this construct.
388
-
389
- Mixins are applied in order. The list of constructs is captured at the
390
- start of the call, so constructs added by a mixin will not be visited.
391
- Use multiple `with()` calls if subsequent mixins should apply to added
392
- constructs.
393
-
394
- ###### `mixins`<sup>Required</sup> <a name="mixins" id="cdk-turso.TursoProvider.with.parameter.mixins"></a>
395
-
396
- - *Type:* ...constructs.IMixin[]
397
-
398
- The mixins to apply.
399
-
400
- ---
401
-
402
336
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
403
337
 
404
338
  | **Name** | **Description** |
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CDK Turso
2
2
 
3
- CDK construct to create a [Turso cloud](https://docs.turso.tech/turso-cloud) database.
3
+ CDK constructs to create [Turso cloud](https://docs.turso.tech/turso-cloud) databases and manage auth tokens.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,30 +10,38 @@ npm install cdk-turso
10
10
 
11
11
  ## Usage
12
12
 
13
+ First, create a `TursoProvider` with your API token:
14
+
13
15
  ```typescript
14
16
  import { Stack } from 'aws-cdk-lib';
15
17
  import { StringParameter } from 'aws-cdk-lib/aws-ssm';
16
- import { TursoDatabase } from 'cdk-turso';
18
+ import { TursoProvider, TursoDatabase, TursoAuthToken } from 'cdk-turso';
17
19
 
18
20
  const stack = new Stack();
19
21
 
20
- // SSM Parameter containing your Turso API token
22
+ // SSM Parameter containing your Turso API token (must be a SecureString)
21
23
  const apiToken = new StringParameter(stack, 'TursoApiToken', {
22
24
  parameterName: '/turso/api-token',
23
25
  stringValue: 'your-api-token',
26
+ type: ParameterType.SECURE_STRING,
27
+ });
28
+
29
+ // Create the provider (one per stack)
30
+ const provider = new TursoProvider(stack, 'TursoProvider', {
31
+ apiToken,
24
32
  });
25
33
 
26
34
  const database = new TursoDatabase(stack, 'Database', {
35
+ provider,
27
36
  databaseName: 'my-database',
28
37
  group: 'group-name',
29
38
  organizationSlug: 'my-org',
30
- apiToken,
31
39
  });
32
40
 
33
- // Use the database attributes
34
- database.dbId; // Database ID
35
- database.hostname; // Database hostname
36
- database.databaseName; // Database name
41
+ // Access database attributes
42
+ database.dbId; // Database ID
43
+ database.hostname; // Database hostname (e.g., my-database-my-org.turso.io)
44
+ database.databaseName; // Database name
37
45
  ```
38
46
 
39
47
  ### Auth Token
@@ -41,10 +49,10 @@ database.databaseName; // Database name
41
49
  Generate a database auth token and store it as a SecureString in SSM Parameter Store:
42
50
 
43
51
  ```typescript
44
- import { TursoAuthToken } from 'cdk-turso';
45
-
46
52
  const authToken = new TursoAuthToken(stack, 'AuthToken', {
47
- database,
53
+ provider,
54
+ databaseName: database.databaseName,
55
+ organizationSlug: 'my-org',
48
56
  parameterName: '/turso/db-token',
49
57
  expiration: '2w', // optional, default: 'never'
50
58
  authorization: 'read-only', // optional, default: 'full-access'
@@ -56,14 +64,28 @@ authToken.parameterName;
56
64
 
57
65
  ## API
58
66
 
67
+ ### TursoProviderProps
68
+
69
+ | Prop | Type | Required | Description |
70
+ |------|------|----------|-------------|
71
+ | `apiToken` | `ssm.IParameter` | Yes | SSM Parameter containing the Turso platform API token (must be SecureString) |
72
+ | `logGroup` | `ILogGroup` | No | Optional CloudWatch log group for the Lambda handler |
73
+
74
+ ### TursoProvider
75
+
76
+ | Attribute | Type | Description |
77
+ |-----------|------|-------------|
78
+ | `handler` | `Function` | The Lambda function backing all Turso custom resources (for attaching IAM permissions) |
79
+ | `serviceToken` | `string` | The CDK custom-resource provider service token |
80
+
59
81
  ### TursoDatabaseProps
60
82
 
61
83
  | Prop | Type | Required | Description |
62
84
  |------|------|----------|-------------|
85
+ | `provider` | `TursoProvider` | Yes | The Turso provider to use for this database |
63
86
  | `databaseName` | `string` | Yes | Database name (lowercase, numbers, dashes only, max 64 chars) |
64
87
  | `group` | `string` | Yes | Turso group name (must already exist) |
65
88
  | `organizationSlug` | `string` | Yes | Organization slug |
66
- | `apiToken` | `ssm.IParameter` | Yes | SSM Parameter containing the Turso API token |
67
89
  | `sizeLimit` | `string` | No | Size limit (e.g., '256mb') |
68
90
  | `seed` | `TursoDatabaseSeed` | No | Database seed configuration |
69
91
  | `encryption` | `TursoDatabaseEncryption` | No | Encryption configuration |
@@ -92,16 +114,16 @@ interface TursoDatabaseEncryption {
92
114
  | Attribute | Type | Description |
93
115
  |-----------|------|-------------|
94
116
  | `dbId` | `string` | Turso database ID |
95
- | `hostname` | `string` | DNS hostname (e.g., `my-db-my-org.turso.io`) for libSQL/HTTP connections |
117
+ | `hostname` | `string` | DNS hostname (e.g., `my-database-my-org.turso.io`) for libSQL/HTTP connections |
96
118
  | `databaseName` | `string` | Database name |
97
- | `organizationSlug` | `string` | Organization slug |
98
- | `apiToken` | `ssm.IParameter` | SSM Parameter containing the Turso API token |
99
119
 
100
120
  ### TursoAuthTokenProps
101
121
 
102
122
  | Prop | Type | Required | Description |
103
123
  |------|------|----------|-------------|
104
- | `database` | `TursoDatabase` | Yes | The Turso database to create an auth token for |
124
+ | `provider` | `TursoProvider` | Yes | The Turso provider to use for this auth token |
125
+ | `databaseName` | `string` | Yes | The name of the Turso database to create an auth token for |
126
+ | `organizationSlug` | `string` | Yes | The Turso organization slug that owns the database |
105
127
  | `parameterName` | `string` | Yes | SSM parameter name where the generated JWT will be stored as a SecureString |
106
128
  | `expiration` | `string` | No | Token expiry (e.g., `'2w'`, `'1d30m'`). Default: `'never'` |
107
129
  | `authorization` | `string` | No | `'full-access'` or `'read-only'`. Default: `'full-access'` |
@@ -40,6 +40,7 @@ class TursoAuthToken extends constructs_1.Construct {
40
40
  }
41
41
  new aws_cdk_lib_1.CustomResource(this, "TursoAuthToken", {
42
42
  serviceToken: props.provider.serviceToken,
43
+ resourceType: "Custom::TursoAuthToken",
43
44
  properties: resourceProps,
44
45
  });
45
46
  this.parameterName = props.parameterName;
@@ -47,5 +48,5 @@ class TursoAuthToken extends constructs_1.Construct {
47
48
  }
48
49
  exports.TursoAuthToken = TursoAuthToken;
49
50
  _a = JSII_RTTI_SYMBOL_1;
50
- TursoAuthToken[_a] = { fqn: "cdk-turso.TursoAuthToken", version: "0.3.0" };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tYXV0aC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90dXJzby1hdXRoLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW1EO0FBQ25ELGlEQUE2RDtBQUM3RCwyQ0FBc0M7QUFxQ3RDLE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBTTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssYUFBYTtZQUNyQyxLQUFLLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFDbkMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLFdBQVc7WUFDckIsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhO1NBQ3hCLENBQUMsQ0FBQTtRQUVGLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FDcEMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7WUFDcEQsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzFCLENBQUMsQ0FDSCxDQUFBO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixhQUFhLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFDbkQsQ0FBQztRQUVELElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDekMsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUN6QyxVQUFVLEVBQUUsYUFBYTtTQUMxQixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUE7SUFDMUMsQ0FBQzs7QUFyREgsd0NBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5U3RhdGVtZW50IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHR5cGUgeyBUdXJzb1Byb3ZpZGVyIH0gZnJvbSBcIi4vdHVyc28tcHJvdmlkZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvQXV0aFRva2VuUHJvcHMge1xuICByZWFkb25seSBwcm92aWRlcjogVHVyc29Qcm92aWRlclxuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgVHVyc28gZGF0YWJhc2UgdG8gY3JlYXRlIGFuIGF1dGggdG9rZW4gZm9yLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIFR1cnNvIG9yZ2FuaXphdGlvbiBzbHVnIHRoYXQgb3ducyB0aGUgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBvcmdhbml6YXRpb25TbHVnOiBzdHJpbmdcblxuICAvKipcbiAgICogVGhlIFNTTSBwYXJhbWV0ZXIgbmFtZSB3aGVyZSB0aGUgZ2VuZXJhdGVkIEpXVCB3aWxsIGJlIHN0b3JlZFxuICAgKiBhcyBhIFNlY3VyZVN0cmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBFeHBpcmF0aW9uIHRpbWUgZm9yIHRoZSB0b2tlbiAoZS5nLiwgYFwiMndcImAsIGBcIjFkMzBtXCJgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJuZXZlclwiXG4gICAqL1xuICByZWFkb25seSBleHBpcmF0aW9uPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEF1dGhvcml6YXRpb24gbGV2ZWwgZm9yIHRoZSB0b2tlbi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJmdWxsLWFjY2Vzc1wiXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBUdXJzb0F1dGhUb2tlbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgU1NNIHBhcmFtZXRlciBuYW1lIHdoZXJlIHRoZSBhdXRoIHRva2VuIGlzIHN0b3JlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVHVyc29BdXRoVG9rZW5Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGlmIChcbiAgICAgIHByb3BzLmF1dGhvcml6YXRpb24gJiZcbiAgICAgIHByb3BzLmF1dGhvcml6YXRpb24gIT09IFwiZnVsbC1hY2Nlc3NcIiAmJlxuICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbiAhPT0gXCJyZWFkLW9ubHlcIlxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhdXRob3JpemF0aW9uIG11c3QgYmUgXCJmdWxsLWFjY2Vzc1wiIG9yIFwicmVhZC1vbmx5XCInKVxuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtZXRlckFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiBcInNzbVwiLFxuICAgICAgcmVzb3VyY2U6IFwicGFyYW1ldGVyXCIsXG4gICAgICByZXNvdXJjZU5hbWU6IHByb3BzLnBhcmFtZXRlck5hbWUuc3RhcnRzV2l0aChcIi9cIilcbiAgICAgICAgPyBwcm9wcy5wYXJhbWV0ZXJOYW1lLnNsaWNlKDEpXG4gICAgICAgIDogcHJvcHMucGFyYW1ldGVyTmFtZSxcbiAgICB9KVxuXG4gICAgcHJvcHMucHJvdmlkZXIuaGFuZGxlci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcInNzbTpQdXRQYXJhbWV0ZXJcIiwgXCJzc206RGVsZXRlUGFyYW1ldGVyXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtwYXJhbWV0ZXJBcm5dLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgcmVzb3VyY2VQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBSZXNvdXJjZVR5cGU6IFwiQXV0aFRva2VuXCIsXG4gICAgICBEYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgIE9yZ2FuaXphdGlvblNsdWc6IHByb3BzLm9yZ2FuaXphdGlvblNsdWcsXG4gICAgICBQYXJhbWV0ZXJOYW1lOiBwcm9wcy5wYXJhbWV0ZXJOYW1lLFxuICAgIH1cblxuICAgIGlmIChwcm9wcy5leHBpcmF0aW9uKSB7XG4gICAgICByZXNvdXJjZVByb3BzLkV4cGlyYXRpb24gPSBwcm9wcy5leHBpcmF0aW9uXG4gICAgfVxuICAgIGlmIChwcm9wcy5hdXRob3JpemF0aW9uKSB7XG4gICAgICByZXNvdXJjZVByb3BzLkF1dGhvcml6YXRpb24gPSBwcm9wcy5hdXRob3JpemF0aW9uXG4gICAgfVxuXG4gICAgbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiVHVyc29BdXRoVG9rZW5cIiwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiByZXNvdXJjZVByb3BzLFxuICAgIH0pXG5cbiAgICB0aGlzLnBhcmFtZXRlck5hbWUgPSBwcm9wcy5wYXJhbWV0ZXJOYW1lXG4gIH1cbn1cbiJdfQ==
51
+ TursoAuthToken[_a] = { fqn: "cdk-turso.TursoAuthToken", version: "0.3.2" };
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tYXV0aC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90dXJzby1hdXRoLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQW1EO0FBQ25ELGlEQUE2RDtBQUM3RCwyQ0FBc0M7QUFxQ3RDLE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBTTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssYUFBYTtZQUNyQyxLQUFLLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFDbkMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLFdBQVc7WUFDckIsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhO1NBQ3hCLENBQUMsQ0FBQTtRQUVGLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FDcEMsSUFBSSx5QkFBZSxDQUFDO1lBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7WUFDcEIsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUM7WUFDcEQsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQzFCLENBQUMsQ0FDSCxDQUFBO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixhQUFhLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFDbkQsQ0FBQztRQUVELElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDekMsWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWTtZQUN6QyxZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtJQUMxQyxDQUFDOztBQXRESCx3Q0F1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgdHlwZSB7IFR1cnNvUHJvdmlkZXIgfSBmcm9tIFwiLi90dXJzby1wcm92aWRlclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29BdXRoVG9rZW5Qcm9wcyB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBUdXJzb1Byb3ZpZGVyXG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBUdXJzbyBkYXRhYmFzZSB0byBjcmVhdGUgYW4gYXV0aCB0b2tlbiBmb3IuXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgVHVyc28gb3JnYW5pemF0aW9uIHNsdWcgdGhhdCBvd25zIHRoZSBkYXRhYmFzZS5cbiAgICovXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNsdWc6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgU1NNIHBhcmFtZXRlciBuYW1lIHdoZXJlIHRoZSBnZW5lcmF0ZWQgSldUIHdpbGwgYmUgc3RvcmVkXG4gICAqIGFzIGEgU2VjdXJlU3RyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVyTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEV4cGlyYXRpb24gdGltZSBmb3IgdGhlIHRva2VuIChlLmcuLCBgXCIyd1wiYCwgYFwiMWQzMG1cImApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIm5ldmVyXCJcbiAgICovXG4gIHJlYWRvbmx5IGV4cGlyYXRpb24/OiBzdHJpbmdcblxuICAvKipcbiAgICogQXV0aG9yaXphdGlvbiBsZXZlbCBmb3IgdGhlIHRva2VuLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImZ1bGwtYWNjZXNzXCJcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6YXRpb24/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIFR1cnNvQXV0aFRva2VuIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBTU00gcGFyYW1ldGVyIG5hbWUgd2hlcmUgdGhlIGF1dGggdG9rZW4gaXMgc3RvcmVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUdXJzb0F1dGhUb2tlblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbiAmJlxuICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbiAhPT0gXCJmdWxsLWFjY2Vzc1wiICYmXG4gICAgICBwcm9wcy5hdXRob3JpemF0aW9uICE9PSBcInJlYWQtb25seVwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvcml6YXRpb24gbXVzdCBiZSBcImZ1bGwtYWNjZXNzXCIgb3IgXCJyZWFkLW9ubHlcIicpXG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1ldGVyQXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6IFwic3NtXCIsXG4gICAgICByZXNvdXJjZTogXCJwYXJhbWV0ZXJcIixcbiAgICAgIHJlc291cmNlTmFtZTogcHJvcHMucGFyYW1ldGVyTmFtZS5zdGFydHNXaXRoKFwiL1wiKVxuICAgICAgICA/IHByb3BzLnBhcmFtZXRlck5hbWUuc2xpY2UoMSlcbiAgICAgICAgOiBwcm9wcy5wYXJhbWV0ZXJOYW1lLFxuICAgIH0pXG5cbiAgICBwcm9wcy5wcm92aWRlci5oYW5kbGVyLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1wic3NtOlB1dFBhcmFtZXRlclwiLCBcInNzbTpEZWxldGVQYXJhbWV0ZXJcIl0sXG4gICAgICAgIHJlc291cmNlczogW3BhcmFtZXRlckFybl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCByZXNvdXJjZVByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFJlc291cmNlVHlwZTogXCJBdXRoVG9rZW5cIixcbiAgICAgIERhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgT3JnYW5pemF0aW9uU2x1ZzogcHJvcHMub3JnYW5pemF0aW9uU2x1ZyxcbiAgICAgIFBhcmFtZXRlck5hbWU6IHByb3BzLnBhcmFtZXRlck5hbWUsXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmV4cGlyYXRpb24pIHtcbiAgICAgIHJlc291cmNlUHJvcHMuRXhwaXJhdGlvbiA9IHByb3BzLmV4cGlyYXRpb25cbiAgICB9XG4gICAgaWYgKHByb3BzLmF1dGhvcml6YXRpb24pIHtcbiAgICAgIHJlc291cmNlUHJvcHMuQXV0aG9yaXphdGlvbiA9IHByb3BzLmF1dGhvcml6YXRpb25cbiAgICB9XG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJUdXJzb0F1dGhUb2tlblwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlR1cnNvQXV0aFRva2VuXCIsXG4gICAgICBwcm9wZXJ0aWVzOiByZXNvdXJjZVByb3BzLFxuICAgIH0pXG5cbiAgICB0aGlzLnBhcmFtZXRlck5hbWUgPSBwcm9wcy5wYXJhbWV0ZXJOYW1lXG4gIH1cbn1cbiJdfQ==
@@ -31,6 +31,7 @@ class TursoDatabase extends constructs_1.Construct {
31
31
  }
32
32
  const cr = new aws_cdk_lib_1.CustomResource(this, "TursoDb", {
33
33
  serviceToken: props.provider.serviceToken,
34
+ resourceType: "Custom::TursoDatabase",
34
35
  properties: resourceProps,
35
36
  });
36
37
  this.dbId = cr.getAttString("DbId");
@@ -40,5 +41,5 @@ class TursoDatabase extends constructs_1.Construct {
40
41
  }
41
42
  exports.TursoDatabase = TursoDatabase;
42
43
  _a = JSII_RTTI_SYMBOL_1;
43
- TursoDatabase[_a] = { fqn: "cdk-turso.TursoDatabase", version: "0.3.0" };
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBd0J0QyxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQVMxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO1FBQzNDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM3QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFVBQVUsRUFBRSxhQUFhO1NBQzFCLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLENBQUM7O0FBOUNILHNDQStDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlIH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB0eXBlIHsgVHVyc29Qcm92aWRlciB9IGZyb20gXCIuL3R1cnNvLXByb3ZpZGVyXCJcblxuZXhwb3J0IGludGVyZmFjZSBUdXJzb0RhdGFiYXNlU2VlZCB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZ1xuICByZWFkb25seSBuYW1lOiBzdHJpbmdcbiAgcmVhZG9ubHkgdGltZXN0YW1wPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29EYXRhYmFzZUVuY3J5cHRpb24ge1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5OiBzdHJpbmdcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbkNpcGhlcjogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29EYXRhYmFzZVByb3BzIHtcbiAgcmVhZG9ubHkgcHJvdmlkZXI6IFR1cnNvUHJvdmlkZXJcbiAgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcbiAgcmVhZG9ubHkgZ3JvdXA6IHN0cmluZ1xuICByZWFkb25seSBvcmdhbml6YXRpb25TbHVnOiBzdHJpbmdcbiAgcmVhZG9ubHkgc2l6ZUxpbWl0Pzogc3RyaW5nXG4gIHJlYWRvbmx5IHNlZWQ/OiBUdXJzb0RhdGFiYXNlU2VlZFxuICByZWFkb25seSBlbmNyeXB0aW9uPzogVHVyc29EYXRhYmFzZUVuY3J5cHRpb25cbn1cblxuZXhwb3J0IGNsYXNzIFR1cnNvRGF0YWJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgZGJJZDogc3RyaW5nXG4gIC8qKlxuICAgKiBETlMgaG9zdG5hbWUgZm9yIHRoZSBkYXRhYmFzZSAoZS5nLiwgYG15LWRiLW15LW9yZy50dXJzby5pb2ApLlxuICAgKiBVc2Ugd2l0aCBsaWJTUUwgb3IgSFRUUCBjb25uZWN0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBob3N0bmFtZTogc3RyaW5nXG4gIHB1YmxpYyByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUdXJzb0RhdGFiYXNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBpZiAoIS9eW2EtejAtOS1dKyQvLnRlc3QocHJvcHMuZGF0YWJhc2VOYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImRhdGFiYXNlTmFtZSBtdXN0IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGRhc2hlc1wiLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAocHJvcHMuZGF0YWJhc2VOYW1lLmxlbmd0aCA+IDY0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkYXRhYmFzZU5hbWUgbXVzdCBiZSBhdCBtb3N0IDY0IGNoYXJhY3RlcnNcIilcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZVByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIFJlc291cmNlVHlwZTogXCJEYXRhYmFzZVwiLFxuICAgICAgRGF0YWJhc2VOYW1lOiBwcm9wcy5kYXRhYmFzZU5hbWUsXG4gICAgICBHcm91cDogcHJvcHMuZ3JvdXAsXG4gICAgICBPcmdhbml6YXRpb25TbHVnOiBwcm9wcy5vcmdhbml6YXRpb25TbHVnLFxuICAgIH1cblxuICAgIGlmIChwcm9wcy5zaXplTGltaXQpIHtcbiAgICAgIHJlc291cmNlUHJvcHMuU2l6ZUxpbWl0ID0gcHJvcHMuc2l6ZUxpbWl0XG4gICAgfVxuICAgIGlmIChwcm9wcy5zZWVkKSB7XG4gICAgICByZXNvdXJjZVByb3BzLlNlZWQgPSBwcm9wcy5zZWVkXG4gICAgfVxuICAgIGlmIChwcm9wcy5lbmNyeXB0aW9uKSB7XG4gICAgICByZXNvdXJjZVByb3BzLkVuY3J5cHRpb24gPSBwcm9wcy5lbmNyeXB0aW9uXG4gICAgfVxuXG4gICAgY29uc3QgY3IgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJUdXJzb0RiXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczogcmVzb3VyY2VQcm9wcyxcbiAgICB9KVxuXG4gICAgdGhpcy5kYklkID0gY3IuZ2V0QXR0U3RyaW5nKFwiRGJJZFwiKVxuICAgIHRoaXMuaG9zdG5hbWUgPSBjci5nZXRBdHRTdHJpbmcoXCJIb3N0bmFtZVwiKVxuICAgIHRoaXMuZGF0YWJhc2VOYW1lID0gY3IuZ2V0QXR0U3RyaW5nKFwiTmFtZVwiKVxuICB9XG59XG4iXX0=
44
+ TursoDatabase[_a] = { fqn: "cdk-turso.TursoDatabase", version: "0.3.2" };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBNEM7QUFDNUMsMkNBQXNDO0FBd0J0QyxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQVMxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO1FBQzNDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM3QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSx1QkFBdUI7WUFDckMsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDN0MsQ0FBQzs7QUEvQ0gsc0NBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHR5cGUgeyBUdXJzb1Byb3ZpZGVyIH0gZnJvbSBcIi4vdHVyc28tcHJvdmlkZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvRGF0YWJhc2VTZWVkIHtcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZ1xuICByZWFkb25seSB0aW1lc3RhbXA/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUdXJzb0RhdGFiYXNlRW5jcnlwdGlvbiB7XG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk6IHN0cmluZ1xuICByZWFkb25seSBlbmNyeXB0aW9uQ2lwaGVyOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUdXJzb0RhdGFiYXNlUHJvcHMge1xuICByZWFkb25seSBwcm92aWRlcjogVHVyc29Qcm92aWRlclxuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuICByZWFkb25seSBncm91cDogc3RyaW5nXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNsdWc6IHN0cmluZ1xuICByZWFkb25seSBzaXplTGltaXQ/OiBzdHJpbmdcbiAgcmVhZG9ubHkgc2VlZD86IFR1cnNvRGF0YWJhc2VTZWVkXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUdXJzb0RhdGFiYXNlRW5jcnlwdGlvblxufVxuXG5leHBvcnQgY2xhc3MgVHVyc29EYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBkYklkOiBzdHJpbmdcbiAgLyoqXG4gICAqIEROUyBob3N0bmFtZSBmb3IgdGhlIGRhdGFiYXNlIChlLmcuLCBgbXktZGItbXktb3JnLnR1cnNvLmlvYCkuXG4gICAqIFVzZSB3aXRoIGxpYlNRTCBvciBIVFRQIGNvbm5lY3Rpb25zLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFR1cnNvRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGlmICghL15bYS16MC05LV0rJC8udGVzdChwcm9wcy5kYXRhYmFzZU5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiZGF0YWJhc2VOYW1lIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgZGFzaGVzXCIsXG4gICAgICApXG4gICAgfVxuICAgIGlmIChwcm9wcy5kYXRhYmFzZU5hbWUubGVuZ3RoID4gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImRhdGFiYXNlTmFtZSBtdXN0IGJlIGF0IG1vc3QgNjQgY2hhcmFjdGVyc1wiKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgUmVzb3VyY2VUeXBlOiBcIkRhdGFiYXNlXCIsXG4gICAgICBEYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgIEdyb3VwOiBwcm9wcy5ncm91cCxcbiAgICAgIE9yZ2FuaXphdGlvblNsdWc6IHByb3BzLm9yZ2FuaXphdGlvblNsdWcsXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNpemVMaW1pdCkge1xuICAgICAgcmVzb3VyY2VQcm9wcy5TaXplTGltaXQgPSBwcm9wcy5zaXplTGltaXRcbiAgICB9XG4gICAgaWYgKHByb3BzLnNlZWQpIHtcbiAgICAgIHJlc291cmNlUHJvcHMuU2VlZCA9IHByb3BzLnNlZWRcbiAgICB9XG4gICAgaWYgKHByb3BzLmVuY3J5cHRpb24pIHtcbiAgICAgIHJlc291cmNlUHJvcHMuRW5jcnlwdGlvbiA9IHByb3BzLmVuY3J5cHRpb25cbiAgICB9XG5cbiAgICBjb25zdCBjciA9IG5ldyBDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlR1cnNvRGJcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm9wcy5wcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICByZXNvdXJjZVR5cGU6IFwiQ3VzdG9tOjpUdXJzb0RhdGFiYXNlXCIsXG4gICAgICBwcm9wZXJ0aWVzOiByZXNvdXJjZVByb3BzLFxuICAgIH0pXG5cbiAgICB0aGlzLmRiSWQgPSBjci5nZXRBdHRTdHJpbmcoXCJEYklkXCIpXG4gICAgdGhpcy5ob3N0bmFtZSA9IGNyLmdldEF0dFN0cmluZyhcIkhvc3RuYW1lXCIpXG4gICAgdGhpcy5kYXRhYmFzZU5hbWUgPSBjci5nZXRBdHRTdHJpbmcoXCJOYW1lXCIpXG4gIH1cbn1cbiJdfQ==
@@ -36,5 +36,5 @@ class TursoProvider extends constructs_1.Construct {
36
36
  }
37
37
  exports.TursoProvider = TursoProvider;
38
38
  _a = JSII_RTTI_SYMBOL_1;
39
- TursoProvider[_a] = { fqn: "cdk-turso.TursoProvider", version: "0.3.0" };
39
+ TursoProvider[_a] = { fqn: "cdk-turso.TursoProvider", version: "0.3.2" };
40
40
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBc0M7QUFDdEMsdURBQStFO0FBRy9FLG1FQUF1RDtBQUN2RCwyQ0FBc0M7QUFDdEMsNkJBQTRCO0FBZ0I1Qjs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFhMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxxQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDM0MsT0FBTyxFQUFFLElBQUksb0JBQU8sQ0FBQyxZQUFZLEVBQUUsMEJBQWEsQ0FBQyxNQUFNLENBQUM7WUFDeEQsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRTtnQkFDWCw4QkFBOEIsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWE7YUFDN0Q7U0FDRixDQUFDLENBQUE7UUFFRixLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUE7SUFDM0MsQ0FBQzs7QUFuQ0gsc0NBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29kZSwgRnVuY3Rpb24sIFJ1bnRpbWUsIFJ1bnRpbWVGYW1pbHkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgdHlwZSB7IElMb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiXG5pbXBvcnQgdHlwZSB7IElQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvUHJvdmlkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBTU00gcGFyYW1ldGVyIHRoYXQgaG9sZHMgdGhlIFR1cnNvIHBsYXRmb3JtIEFQSSB0b2tlblxuICAgKiAoc3RvcmVkIGFzIFNlY3VyZVN0cmluZykuXG4gICAqL1xuICByZWFkb25seSBhcGlUb2tlbjogSVBhcmFtZXRlclxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBsb2cgZ3JvdXAgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYSBsb2cgZ3JvdXAgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cD86IElMb2dHcm91cFxufVxuXG4vKipcbiAqIFNoYXJlZCBMYW1iZGEgKyBDbG91ZEZvcm1hdGlvbiBjdXN0b20tcmVzb3VyY2UgcHJvdmlkZXIgZm9yIGFsbFxuICogVHVyc28gcmVzb3VyY2VzLiAgQ3JlYXRlIG9uZSBwZXIgc3RhY2sgYW5kIHBhc3MgaXQgdG8gZXZlcnlcbiAqIGBUdXJzb0RhdGFiYXNlYCwgYFR1cnNvQXV0aFRva2VuYCwgZXRjLlxuICovXG5leHBvcnQgY2xhc3MgVHVyc29Qcm92aWRlciBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIGJhY2tpbmcgYWxsIFR1cnNvIGN1c3RvbSByZXNvdXJjZXMuXG4gICAqIFVzZSB0aGlzIHRvIGF0dGFjaCBhZGRpdGlvbmFsIElBTSBwZXJtaXNzaW9ucyB3aGVuIGEgcmVzb3VyY2VcbiAgICogdHlwZSBuZWVkcyB0aGVtIChlLmcuIGBzc206UHV0UGFyYW1ldGVyYCBmb3IgYXV0aC10b2tlbiBzdG9yYWdlKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBoYW5kbGVyOiBGdW5jdGlvblxuXG4gIC8qKlxuICAgKiBUaGUgQ0RLIGN1c3RvbS1yZXNvdXJjZSBwcm92aWRlciBzZXJ2aWNlIHRva2VuLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFR1cnNvUHJvdmlkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuaGFuZGxlciA9IG5ldyBGdW5jdGlvbih0aGlzLCBcIkhhbmRsZXJcIiwge1xuICAgICAgcnVudGltZTogbmV3IFJ1bnRpbWUoXCJub2RlanMyNC54XCIsIFJ1bnRpbWVGYW1pbHkuTk9ERUpTKSxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgXCJoYW5kbGVyXCIpKSxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMyksXG4gICAgICBsb2dHcm91cDogcHJvcHMubG9nR3JvdXAsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBUVVJTT19BUElfVE9LRU5fUEFSQU1FVEVSX05BTUU6IHByb3BzLmFwaVRva2VuLnBhcmFtZXRlck5hbWUsXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBwcm9wcy5hcGlUb2tlbi5ncmFudFJlYWQodGhpcy5oYW5kbGVyKVxuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgXCJQcm92aWRlclwiLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogdGhpcy5oYW5kbGVyLFxuICAgICAgbG9nR3JvdXA6IHByb3BzLmxvZ0dyb3VwLFxuICAgIH0pXG5cbiAgICB0aGlzLnNlcnZpY2VUb2tlbiA9IHByb3ZpZGVyLnNlcnZpY2VUb2tlblxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -38,9 +38,9 @@
38
38
  "@biomejs/biome": "^2",
39
39
  "@types/jest": "^30.0.0",
40
40
  "@types/node": "^25.3.0",
41
- "aws-cdk-lib": "2.238.0",
41
+ "aws-cdk-lib": "2.201.0",
42
42
  "commit-and-tag-version": "^12",
43
- "constructs": "10.5.0",
43
+ "constructs": "10.3.0",
44
44
  "esbuild": "^0.27.3",
45
45
  "exponential-backoff": "^3.1.3",
46
46
  "husky": "^9.1.7",
@@ -57,8 +57,8 @@
57
57
  "typescript": "^5.9.3"
58
58
  },
59
59
  "peerDependencies": {
60
- "aws-cdk-lib": "^2.238.0",
61
- "constructs": "^10.5.0"
60
+ "aws-cdk-lib": "^2.201.0",
61
+ "constructs": "^10.3.0"
62
62
  },
63
63
  "keywords": [
64
64
  "cdk"
@@ -68,7 +68,7 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "version": "0.3.0",
71
+ "version": "0.3.2",
72
72
  "jest": {
73
73
  "coverageProvider": "v8",
74
74
  "testMatch": [