cdk-turso 0.4.6 → 0.4.7

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/.jsii CHANGED
@@ -8426,7 +8426,7 @@
8426
8426
  },
8427
8427
  "name": "cdk-turso",
8428
8428
  "readme": {
8429
- "markdown": "# CDK Turso\n\nCDK constructs to create [Turso cloud](https://docs.turso.tech/turso-cloud) databases and manage auth tokens.\n\n## Installation\n\n```bash\nnpm install cdk-turso\n```\n\n## Usage\n\nCreate a `TursoProvider` with your API token:\n\n```typescript\nimport { RemovalPolicy, Stack } from 'aws-cdk-lib';\nimport { ParameterType, StringParameter } from 'aws-cdk-lib/aws-ssm';\nimport { TursoProvider, TursoDatabase, TursoAuthToken } from 'cdk-turso';\n\nconst stack = new Stack();\n\n// SSM Parameter containing your Turso API token (must be a SecureString)\nconst apiToken = new StringParameter(stack, 'TursoApiToken', {\n parameterName: '/turso/api-token',\n stringValue: 'your-api-token',\n type: ParameterType.SECURE_STRING,\n});\n\n// Create the provider (one per stack)\nconst provider = new TursoProvider(stack, 'TursoProvider', {\n apiToken,\n});\n\nconst database = new TursoDatabase(stack, 'Database', {\n provider,\n databaseName: 'my-database',\n group: 'group-name',\n organizationSlug: 'my-org',\n adopt: true, // optional: adopt existing database if it already exists\n removalPolicy: RemovalPolicy.RETAIN, // optional: keep DB on stack delete\n});\n\n// Access database attributes\ndatabase.dbId; // Database ID\ndatabase.hostname; // Database hostname (e.g., my-database-my-org.turso.io)\ndatabase.databaseName; // Database name\n```\n\nIf you run a shared provider in another stack, import it by service token:\n\n```typescript\nconst provider = TursoProvider.fromServiceToken(\n stack,\n 'TursoProvider',\n 'arn:aws:lambda:us-east-1:123456789012:function:shared-turso-provider',\n);\n```\n\n### Auth Token\n\nGenerate a database auth token and store it as a SecureString in SSM Parameter Store:\n\n```typescript\nconst authToken = new TursoAuthToken(stack, 'AuthToken', {\n provider,\n databaseName: database.databaseName,\n organizationSlug: 'my-org',\n parameterName: '/turso/db-token',\n expiration: '2w', // optional, default: 'never'\n authorization: 'read-only', // optional, default: 'full-access'\n removalPolicy: RemovalPolicy.RETAIN, // optional: keep SSM parameter\n});\n\n// The SSM parameter name where the JWT is stored\nauthToken.parameterName;\n```\n\n## API\n\n### TursoProviderProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `apiToken` | `ssm.IParameter` | Yes | SSM Parameter containing the Turso platform API token (must be SecureString) |\n| `logGroup` | `ILogGroup` | No | Optional CloudWatch log group for the Lambda handler |\n\n### TursoProvider\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `handler` | `Function` | The Lambda function backing all Turso custom resources (for attaching IAM permissions) |\n| `serviceToken` | `string` | The CDK custom-resource provider service token |\n\nStatic method:\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `fromServiceToken(scope, id, serviceToken)` | `ITursoProvider` | Imports an existing Turso custom-resource provider |\n\n### ITursoProvider\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `serviceToken` | `string` | The CDK custom-resource provider service token |\n\n### TursoDatabaseProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `provider` | `ITursoProvider` | Yes | The Turso provider to use for this database |\n| `databaseName` | `string` | Yes | Database name (lowercase, numbers, dashes only, max 64 chars) |\n| `group` | `string` | Yes | Turso group name (must already exist) |\n| `organizationSlug` | `string` | Yes | Organization slug |\n| `sizeLimit` | `string` | No | Size limit (e.g., '256mb') |\n| `seed` | `TursoDatabaseSeed` | No | Database seed configuration |\n| `encryption` | `TursoDatabaseEncryption` | No | Encryption configuration |\n| `adopt` | `boolean` | No | On create, adopt an existing database when create returns \"already exists\" |\n| `removalPolicy` | `RemovalPolicy` | No | Custom resource removal policy (for example `RemovalPolicy.RETAIN`) |\n\n### TursoDatabaseSeed\n\n```typescript\ninterface TursoDatabaseSeed {\n readonly type: string; // Seed type (e.g., 'schema')\n readonly name: string; // Seed name\n readonly timestamp?: string; // Optional timestamp\n}\n```\n\n### TursoDatabaseEncryption\n\n```typescript\ninterface TursoDatabaseEncryption {\n readonly encryptionKey: string; // KMS key ARN\n readonly encryptionCipher: string; // Cipher type (e.g., 'AES')\n}\n```\n\n### TursoDatabase\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `dbId` | `string` | Turso database ID |\n| `hostname` | `string` | DNS hostname (e.g., `my-database-my-org.turso.io`) for libSQL/HTTP connections |\n| `databaseName` | `string` | Database name |\n\n### TursoAuthTokenProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `provider` | `ITursoProvider` | Yes | The Turso provider to use for this auth token |\n| `databaseName` | `string` | Yes | The name of the Turso database to create an auth token for |\n| `organizationSlug` | `string` | Yes | The Turso organization slug that owns the database |\n| `parameterName` | `string` | Yes | SSM parameter name where the generated JWT will be stored as a SecureString |\n| `expiration` | `string` | No | Token expiry (e.g., `'2w'`, `'1d30m'`). Default: `'never'` |\n| `authorization` | `string` | No | `'full-access'` or `'read-only'`. Default: `'full-access'` |\n| `removalPolicy` | `RemovalPolicy` | No | Custom resource removal policy (for example `RemovalPolicy.RETAIN`) |\n\n### TursoAuthToken\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `parameterName` | `string` | The SSM parameter name where the auth token is stored |\n\n## Requirements\n\n- Node.js 24.x runtime for the Lambda handler\n- The Lambda handler requires the AWS SDK for JavaScript v3 (pre-installed in Lambda runtime)\n"
8429
+ "markdown": "# CDK Turso\n\nCDK constructs to create [Turso cloud](https://docs.turso.tech/turso-cloud) databases and manage auth tokens.\n\n## Installation\n\n```bash\nnpm install cdk-turso\n```\n\n## Usage\n\nCreate a `TursoProvider` with your API token:\n\n```typescript\nimport { RemovalPolicy, Stack } from 'aws-cdk-lib';\nimport { ParameterType, StringParameter } from 'aws-cdk-lib/aws-ssm';\nimport { TursoProvider, TursoDatabase, TursoAuthToken } from 'cdk-turso';\n\nconst stack = new Stack();\n\n// SSM Parameter containing your Turso API token (must be a SecureString)\nconst apiToken = new StringParameter(stack, 'TursoApiToken', {\n parameterName: '/turso/api-token',\n stringValue: 'your-api-token',\n type: ParameterType.SECURE_STRING,\n});\n\n// Create the provider (one per stack)\nconst provider = new TursoProvider(stack, 'TursoProvider', {\n apiToken,\n});\n\nconst database = new TursoDatabase(stack, 'Database', {\n provider,\n databaseName: 'my-database',\n group: 'group-name',\n organizationSlug: 'my-org',\n adopt: true, // optional: adopt existing database if it already exists\n removalPolicy: RemovalPolicy.RETAIN, // optional: keep DB on stack delete\n});\n\n// Access database attributes\ndatabase.dbId; // Database ID\ndatabase.hostname; // Database hostname (e.g., my-database-my-org.turso.io)\ndatabase.databaseName; // Database name\n```\n\nUse `RemovalPolicy.SNAPSHOT` to create a point-in-time Turso database copy\nbefore the database is deleted:\n\n```typescript\nnew TursoDatabase(stack, 'DatabaseWithFinalSnapshot', {\n provider,\n databaseName: 'my-database',\n group: 'group-name',\n organizationSlug: 'my-org',\n removalPolicy: RemovalPolicy.SNAPSHOT,\n});\n```\n\nSnapshots are implemented by creating a new Turso database from the source\ndatabase at delete time. Changing to `RemovalPolicy.SNAPSHOT` does not update\nthe existing Turso database; it only affects a later delete operation.\n\nIf you run a shared provider in another stack, import it by service token:\n\n```typescript\nconst provider = TursoProvider.fromServiceToken(\n stack,\n 'TursoProvider',\n 'arn:aws:lambda:us-east-1:123456789012:function:shared-turso-provider',\n);\n```\n\n### Auth Token\n\nGenerate a database auth token and store it as a SecureString in SSM Parameter Store:\n\n```typescript\nconst authToken = new TursoAuthToken(stack, 'AuthToken', {\n provider,\n databaseName: database.databaseName,\n organizationSlug: 'my-org',\n parameterName: '/turso/db-token',\n expiration: '2w', // optional, default: 'never'\n authorization: 'read-only', // optional, default: 'full-access'\n removalPolicy: RemovalPolicy.RETAIN, // optional: keep SSM parameter\n});\n\n// The SSM parameter name where the JWT is stored\nauthToken.parameterName;\n```\n\n## API\n\n### TursoProviderProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `apiToken` | `ssm.IParameter` | Yes | SSM Parameter containing the Turso platform API token (must be SecureString) |\n| `logGroup` | `ILogGroup` | No | Optional CloudWatch log group for the Lambda handler |\n\n### TursoProvider\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `handler` | `Function` | The Lambda function backing all Turso custom resources (for attaching IAM permissions) |\n| `serviceToken` | `string` | The CDK custom-resource provider service token |\n\nStatic method:\n\n| Method | Returns | Description |\n|--------|---------|-------------|\n| `fromServiceToken(scope, id, serviceToken)` | `ITursoProvider` | Imports an existing Turso custom-resource provider |\n\n### ITursoProvider\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `serviceToken` | `string` | The CDK custom-resource provider service token |\n\n### TursoDatabaseProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `provider` | `ITursoProvider` | Yes | The Turso provider to use for this database |\n| `databaseName` | `string` | Yes | Database name (lowercase, numbers, dashes only, max 64 chars) |\n| `group` | `string` | Yes | Turso group name (must already exist) |\n| `organizationSlug` | `string` | Yes | Organization slug |\n| `sizeLimit` | `string` | No | Size limit (e.g., '256mb') |\n| `seed` | `TursoDatabaseSeed` | No | Database seed configuration |\n| `encryption` | `TursoDatabaseEncryption` | No | Encryption configuration |\n| `adopt` | `boolean` | No | On create, adopt an existing database when create returns \"already exists\" |\n| `removalPolicy` | `RemovalPolicy` | No | `RemovalPolicy.RETAIN` keeps the DB. `RemovalPolicy.SNAPSHOT` creates a point-in-time Turso DB copy before delete. |\n\n### TursoDatabaseSeed\n\n```typescript\ninterface TursoDatabaseSeed {\n readonly type: string; // Seed type (e.g., 'schema')\n readonly name: string; // Seed name\n readonly timestamp?: string; // Optional timestamp\n}\n```\n\n### TursoDatabaseEncryption\n\n```typescript\ninterface TursoDatabaseEncryption {\n readonly encryptionKey: string; // KMS key ARN\n readonly encryptionCipher: string; // Cipher type (e.g., 'AES')\n}\n```\n\n### TursoDatabase\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `dbId` | `string` | Turso database ID |\n| `hostname` | `string` | DNS hostname (e.g., `my-database-my-org.turso.io`) for libSQL/HTTP connections |\n| `databaseName` | `string` | Database name |\n\n### TursoAuthTokenProps\n\n| Prop | Type | Required | Description |\n|------|------|----------|-------------|\n| `provider` | `ITursoProvider` | Yes | The Turso provider to use for this auth token |\n| `databaseName` | `string` | Yes | The name of the Turso database to create an auth token for |\n| `organizationSlug` | `string` | Yes | The Turso organization slug that owns the database |\n| `parameterName` | `string` | Yes | SSM parameter name where the generated JWT will be stored as a SecureString |\n| `expiration` | `string` | No | Token expiry (e.g., `'2w'`, `'1d30m'`). Default: `'never'` |\n| `authorization` | `string` | No | `'full-access'` or `'read-only'`. Default: `'full-access'` |\n| `removalPolicy` | `RemovalPolicy` | No | Custom resource removal policy (for example `RemovalPolicy.RETAIN`) |\n\n### TursoAuthToken\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `parameterName` | `string` | The SSM parameter name where the auth token is stored |\n\n## Requirements\n\n- Node.js 24.x runtime for the Lambda handler\n- The Lambda handler requires the AWS SDK for JavaScript v3 (pre-installed in Lambda runtime)\n"
8430
8430
  },
8431
8431
  "repository": {
8432
8432
  "type": "git",
@@ -8680,7 +8680,7 @@
8680
8680
  },
8681
8681
  "locationInModule": {
8682
8682
  "filename": "src/turso-database.ts",
8683
- "line": 52
8683
+ "line": 54
8684
8684
  },
8685
8685
  "parameters": [
8686
8686
  {
@@ -8706,7 +8706,7 @@
8706
8706
  "kind": "class",
8707
8707
  "locationInModule": {
8708
8708
  "filename": "src/turso-database.ts",
8709
- "line": 43
8709
+ "line": 45
8710
8710
  },
8711
8711
  "name": "TursoDatabase",
8712
8712
  "properties": [
@@ -8717,7 +8717,7 @@
8717
8717
  "immutable": true,
8718
8718
  "locationInModule": {
8719
8719
  "filename": "src/turso-database.ts",
8720
- "line": 50
8720
+ "line": 52
8721
8721
  },
8722
8722
  "name": "databaseName",
8723
8723
  "type": {
@@ -8731,7 +8731,7 @@
8731
8731
  "immutable": true,
8732
8732
  "locationInModule": {
8733
8733
  "filename": "src/turso-database.ts",
8734
- "line": 44
8734
+ "line": 46
8735
8735
  },
8736
8736
  "name": "dbId",
8737
8737
  "type": {
@@ -8746,7 +8746,7 @@
8746
8746
  "immutable": true,
8747
8747
  "locationInModule": {
8748
8748
  "filename": "src/turso-database.ts",
8749
- "line": 49
8749
+ "line": 51
8750
8750
  },
8751
8751
  "name": "hostname",
8752
8752
  "type": {
@@ -8915,14 +8915,14 @@
8915
8915
  {
8916
8916
  "abstract": true,
8917
8917
  "docs": {
8918
- "remarks": "Set to `RemovalPolicy.RETAIN` to keep the Turso database on stack\ndeletion.",
8918
+ "remarks": "Set to `RemovalPolicy.RETAIN` to keep the Turso database on stack\ndeletion.\nSet to `RemovalPolicy.SNAPSHOT` to create a point-in-time Turso database\nsnapshot before deleting the database.",
8919
8919
  "stability": "stable",
8920
8920
  "summary": "Removal policy for the underlying custom resource."
8921
8921
  },
8922
8922
  "immutable": true,
8923
8923
  "locationInModule": {
8924
8924
  "filename": "src/turso-database.ts",
8925
- "line": 40
8925
+ "line": 42
8926
8926
  },
8927
8927
  "name": "removalPolicy",
8928
8928
  "optional": true,
@@ -9202,6 +9202,6 @@
9202
9202
  "symbolId": "src/turso-provider:TursoProviderProps"
9203
9203
  }
9204
9204
  },
9205
- "version": "0.4.6",
9206
- "fingerprint": "QynPSlE8FVVJY6FpYwNamT/AgfYGd7oqaLI+uLqIFeQ="
9205
+ "version": "0.4.7",
9206
+ "fingerprint": "mONwBWFEaRI7E7nTi1PodvbzWNwUHDX4FVYBEpL9HF4="
9207
9207
  }
package/API.md CHANGED
@@ -709,6 +709,8 @@ Removal policy for the underlying custom resource.
709
709
 
710
710
  Set to `RemovalPolicy.RETAIN` to keep the Turso database on stack
711
711
  deletion.
712
+ Set to `RemovalPolicy.SNAPSHOT` to create a point-in-time Turso database
713
+ snapshot before deleting the database.
712
714
 
713
715
  ---
714
716
 
package/README.md CHANGED
@@ -46,6 +46,23 @@ database.hostname; // Database hostname (e.g., my-database-my-org.turso.io)
46
46
  database.databaseName; // Database name
47
47
  ```
48
48
 
49
+ Use `RemovalPolicy.SNAPSHOT` to create a point-in-time Turso database copy
50
+ before the database is deleted:
51
+
52
+ ```typescript
53
+ new TursoDatabase(stack, 'DatabaseWithFinalSnapshot', {
54
+ provider,
55
+ databaseName: 'my-database',
56
+ group: 'group-name',
57
+ organizationSlug: 'my-org',
58
+ removalPolicy: RemovalPolicy.SNAPSHOT,
59
+ });
60
+ ```
61
+
62
+ Snapshots are implemented by creating a new Turso database from the source
63
+ database at delete time. Changing to `RemovalPolicy.SNAPSHOT` does not update
64
+ the existing Turso database; it only affects a later delete operation.
65
+
49
66
  If you run a shared provider in another stack, import it by service token:
50
67
 
51
68
  ```typescript
@@ -115,7 +132,7 @@ Static method:
115
132
  | `seed` | `TursoDatabaseSeed` | No | Database seed configuration |
116
133
  | `encryption` | `TursoDatabaseEncryption` | No | Encryption configuration |
117
134
  | `adopt` | `boolean` | No | On create, adopt an existing database when create returns "already exists" |
118
- | `removalPolicy` | `RemovalPolicy` | No | Custom resource removal policy (for example `RemovalPolicy.RETAIN`) |
135
+ | `removalPolicy` | `RemovalPolicy` | No | `RemovalPolicy.RETAIN` keeps the DB. `RemovalPolicy.SNAPSHOT` creates a point-in-time Turso DB copy before delete. |
119
136
 
120
137
  ### TursoDatabaseSeed
121
138
 
@@ -607,6 +607,9 @@ async function fetchWithRetry(url, options, errorMessage, allow404 = false, allo
607
607
  function isAlreadyExistsError(status, errorText) {
608
608
  return status === 409 || /already exists|already been taken/i.test(errorText);
609
609
  }
610
+ function isNotFoundError(status, errorText) {
611
+ return status === 404 || status === 400 && /not found|does not exist/i.test(errorText);
612
+ }
610
613
  function isTrueValue(value) {
611
614
  if (typeof value === "string") {
612
615
  return value.trim().toLowerCase() === "true";
@@ -624,6 +627,13 @@ async function getApiToken(parameterName) {
624
627
  }
625
628
  return response.Parameter.Value;
626
629
  }
630
+ function formatSnapshotDate(date) {
631
+ return date.toISOString().replace(/\.\d{3}Z$/, "Z");
632
+ }
633
+ function formatSnapshotName(dbName, date) {
634
+ const suffix = `-snapshot-${formatSnapshotDate(date).replace(/\D/g, "")}`;
635
+ return `${dbName.slice(0, 64 - suffix.length)}${suffix}`;
636
+ }
627
637
  async function handleDatabase(event, apiToken) {
628
638
  const { RequestType, PhysicalResourceId, ResourceProperties } = event;
629
639
  const orgSlug = encodeURIComponent(ResourceProperties.OrganizationSlug);
@@ -734,6 +744,36 @@ async function handleDatabase(event, apiToken) {
734
744
  return { PhysicalResourceId };
735
745
  }
736
746
  const dbNameToDelete = encodeURIComponent(PhysicalResourceId);
747
+ if (isTrueValue(ResourceProperties.SnapshotOnDelete)) {
748
+ const snapshotDate = /* @__PURE__ */ new Date();
749
+ const snapshotName = formatSnapshotName(PhysicalResourceId, snapshotDate);
750
+ const body = {
751
+ name: snapshotName,
752
+ group: ResourceProperties.Group,
753
+ seed: {
754
+ type: "database",
755
+ name: PhysicalResourceId,
756
+ timestamp: formatSnapshotDate(snapshotDate)
757
+ }
758
+ };
759
+ if (ResourceProperties.Encryption) {
760
+ body.encryption = ResourceProperties.Encryption;
761
+ }
762
+ await fetchWithRetry(
763
+ `${baseUrl}/organizations/${orgSlug}/databases`,
764
+ {
765
+ method: "POST",
766
+ headers: {
767
+ Authorization: `Bearer ${apiToken}`,
768
+ "Content-Type": "application/json"
769
+ },
770
+ body: JSON.stringify(body)
771
+ },
772
+ "Failed to create database snapshot",
773
+ false,
774
+ isNotFoundError
775
+ );
776
+ }
737
777
  await fetchWithRetry(
738
778
  `${baseUrl}/organizations/${orgSlug}/databases/${dbNameToDelete}`,
739
779
  {
@@ -52,5 +52,5 @@ class TursoAuthToken extends constructs_1.Construct {
52
52
  }
53
53
  exports.TursoAuthToken = TursoAuthToken;
54
54
  _a = JSII_RTTI_SYMBOL_1;
55
- TursoAuthToken[_a] = { fqn: "cdk-turso.TursoAuthToken", version: "0.4.6" };
55
+ TursoAuthToken[_a] = { fqn: "cdk-turso.TursoAuthToken", version: "0.4.7" };
56
56
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tYXV0aC10b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90dXJzby1hdXRoLXRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQWtFO0FBQ2xFLGlEQUE2RDtBQUM3RCwyQ0FBc0M7QUE0Q3RDLE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBTTNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUNFLEtBQUssQ0FBQyxhQUFhO1lBQ25CLEtBQUssQ0FBQyxhQUFhLEtBQUssYUFBYTtZQUNyQyxLQUFLLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFDbkMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtRQUN2RSxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzVDLE9BQU8sRUFBRSxLQUFLO1lBQ2QsUUFBUSxFQUFFLFdBQVc7WUFDckIsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhO1NBQ3hCLENBQUMsQ0FBQTtRQUVGLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLFFBSWpDLENBQUE7UUFFRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUMxQyxJQUFJLHlCQUFlLENBQUM7WUFDbEIsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztZQUNwQixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxxQkFBcUIsQ0FBQztZQUNwRCxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDMUIsQ0FBQyxDQUNILENBQUE7UUFFRCxNQUFNLGFBQWEsR0FBNEI7WUFDN0MsWUFBWSxFQUFFLFdBQVc7WUFDekIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1NBQ25DLENBQUE7UUFFRCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixhQUFhLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUE7UUFDN0MsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLGFBQWEsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUNuRCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtZQUNwRCxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSx3QkFBd0I7WUFDdEMsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtJQUMxQyxDQUFDOztBQWhFSCx3Q0FpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgUmVtb3ZhbFBvbGljeSwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgRWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgdHlwZSB7IElUdXJzb1Byb3ZpZGVyIH0gZnJvbSBcIi4vdHVyc28tcHJvdmlkZXJcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvQXV0aFRva2VuUHJvcHMge1xuICByZWFkb25seSBwcm92aWRlcjogSVR1cnNvUHJvdmlkZXJcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFR1cnNvIGRhdGFiYXNlIHRvIGNyZWF0ZSBhbiBhdXRoIHRva2VuIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBUdXJzbyBvcmdhbml6YXRpb24gc2x1ZyB0aGF0IG93bnMgdGhlIGRhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgb3JnYW5pemF0aW9uU2x1Zzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBTU00gcGFyYW1ldGVyIG5hbWUgd2hlcmUgdGhlIGdlbmVyYXRlZCBKV1Qgd2lsbCBiZSBzdG9yZWRcbiAgICogYXMgYSBTZWN1cmVTdHJpbmcuXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJOYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogRXhwaXJhdGlvbiB0aW1lIGZvciB0aGUgdG9rZW4gKGUuZy4sIGBcIjJ3XCJgLCBgXCIxZDMwbVwiYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwibmV2ZXJcIlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwaXJhdGlvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBBdXRob3JpemF0aW9uIGxldmVsIGZvciB0aGUgdG9rZW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZnVsbC1hY2Nlc3NcIlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbj86IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgdGhlIHVuZGVybHlpbmcgY3VzdG9tIHJlc291cmNlLlxuICAgKiBTZXQgdG8gYFJlbW92YWxQb2xpY3kuUkVUQUlOYCB0byBrZWVwIHRoZSBTU00gcGFyYW1ldGVyIG9uIHN0YWNrXG4gICAqIGRlbGV0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3lcbn1cblxuZXhwb3J0IGNsYXNzIFR1cnNvQXV0aFRva2VuIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFRoZSBTU00gcGFyYW1ldGVyIG5hbWUgd2hlcmUgdGhlIGF1dGggdG9rZW4gaXMgc3RvcmVkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUdXJzb0F1dGhUb2tlblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbiAmJlxuICAgICAgcHJvcHMuYXV0aG9yaXphdGlvbiAhPT0gXCJmdWxsLWFjY2Vzc1wiICYmXG4gICAgICBwcm9wcy5hdXRob3JpemF0aW9uICE9PSBcInJlYWQtb25seVwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2F1dGhvcml6YXRpb24gbXVzdCBiZSBcImZ1bGwtYWNjZXNzXCIgb3IgXCJyZWFkLW9ubHlcIicpXG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1ldGVyQXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6IFwic3NtXCIsXG4gICAgICByZXNvdXJjZTogXCJwYXJhbWV0ZXJcIixcbiAgICAgIHJlc291cmNlTmFtZTogcHJvcHMucGFyYW1ldGVyTmFtZS5zdGFydHNXaXRoKFwiL1wiKVxuICAgICAgICA/IHByb3BzLnBhcmFtZXRlck5hbWUuc2xpY2UoMSlcbiAgICAgICAgOiBwcm9wcy5wYXJhbWV0ZXJOYW1lLFxuICAgIH0pXG5cbiAgICBjb25zdCBwcm92aWRlcldpdGhIYW5kbGVyID0gcHJvcHMucHJvdmlkZXIgYXMgSVR1cnNvUHJvdmlkZXIgJiB7XG4gICAgICByZWFkb25seSBoYW5kbGVyPzoge1xuICAgICAgICBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiB2b2lkXG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdmlkZXJXaXRoSGFuZGxlci5oYW5kbGVyPy5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcInNzbTpQdXRQYXJhbWV0ZXJcIiwgXCJzc206RGVsZXRlUGFyYW1ldGVyXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtwYXJhbWV0ZXJBcm5dLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgcmVzb3VyY2VQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBSZXNvdXJjZVR5cGU6IFwiQXV0aFRva2VuXCIsXG4gICAgICBEYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgIE9yZ2FuaXphdGlvblNsdWc6IHByb3BzLm9yZ2FuaXphdGlvblNsdWcsXG4gICAgICBQYXJhbWV0ZXJOYW1lOiBwcm9wcy5wYXJhbWV0ZXJOYW1lLFxuICAgIH1cblxuICAgIGlmIChwcm9wcy5leHBpcmF0aW9uKSB7XG4gICAgICByZXNvdXJjZVByb3BzLkV4cGlyYXRpb24gPSBwcm9wcy5leHBpcmF0aW9uXG4gICAgfVxuICAgIGlmIChwcm9wcy5hdXRob3JpemF0aW9uKSB7XG4gICAgICByZXNvdXJjZVByb3BzLkF1dGhvcml6YXRpb24gPSBwcm9wcy5hdXRob3JpemF0aW9uXG4gICAgfVxuXG4gICAgY29uc3QgY3IgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJUdXJzb0F1dGhUb2tlblwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlR1cnNvQXV0aFRva2VuXCIsXG4gICAgICBwcm9wZXJ0aWVzOiByZXNvdXJjZVByb3BzLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHMucmVtb3ZhbFBvbGljeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjci5hcHBseVJlbW92YWxQb2xpY3kocHJvcHMucmVtb3ZhbFBvbGljeSlcbiAgICB9XG5cbiAgICB0aGlzLnBhcmFtZXRlck5hbWUgPSBwcm9wcy5wYXJhbWV0ZXJOYW1lXG4gIH1cbn1cbiJdfQ==
@@ -31,6 +31,8 @@ export interface TursoDatabaseProps {
31
31
  * Removal policy for the underlying custom resource.
32
32
  * Set to `RemovalPolicy.RETAIN` to keep the Turso database on stack
33
33
  * deletion.
34
+ * Set to `RemovalPolicy.SNAPSHOT` to create a point-in-time Turso database
35
+ * snapshot before deleting the database.
34
36
  */
35
37
  readonly removalPolicy?: RemovalPolicy;
36
38
  }
@@ -29,6 +29,9 @@ class TursoDatabase extends constructs_1.Construct {
29
29
  if (props.encryption) {
30
30
  resourceProps.Encryption = props.encryption;
31
31
  }
32
+ if (props.removalPolicy === aws_cdk_lib_1.RemovalPolicy.SNAPSHOT) {
33
+ resourceProps.SnapshotOnDelete = true;
34
+ }
32
35
  if (props.adopt !== undefined) {
33
36
  resourceProps.Adopt = props.adopt;
34
37
  }
@@ -37,7 +40,8 @@ class TursoDatabase extends constructs_1.Construct {
37
40
  resourceType: "Custom::TursoDatabase",
38
41
  properties: resourceProps,
39
42
  });
40
- if (props.removalPolicy !== undefined) {
43
+ if (props.removalPolicy !== undefined &&
44
+ props.removalPolicy !== aws_cdk_lib_1.RemovalPolicy.SNAPSHOT) {
41
45
  cr.applyRemovalPolicy(props.removalPolicy);
42
46
  }
43
47
  this.dbId = cr.getAttString("DbId");
@@ -47,5 +51,5 @@ class TursoDatabase extends constructs_1.Construct {
47
51
  }
48
52
  exports.TursoDatabase = TursoDatabase;
49
53
  _a = JSII_RTTI_SYMBOL_1;
50
- TursoDatabase[_a] = { fqn: "cdk-turso.TursoDatabase", version: "0.4.6" };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMkQ7QUFDM0QsMkNBQXNDO0FBeUN0QyxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQVMxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO1FBQzNDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO1FBQ25DLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM3QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSx1QkFBdUI7WUFDckMsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxLQUFLLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLENBQUM7O0FBdERILHNDQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB0eXBlIHsgSVR1cnNvUHJvdmlkZXIgfSBmcm9tIFwiLi90dXJzby1wcm92aWRlclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29EYXRhYmFzZVNlZWQge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmdcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nXG4gIHJlYWRvbmx5IHRpbWVzdGFtcD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvRGF0YWJhc2VFbmNyeXB0aW9uIHtcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleTogc3RyaW5nXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25DaXBoZXI6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvRGF0YWJhc2VQcm9wcyB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJVHVyc29Qcm92aWRlclxuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuICByZWFkb25seSBncm91cDogc3RyaW5nXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNsdWc6IHN0cmluZ1xuICByZWFkb25seSBzaXplTGltaXQ/OiBzdHJpbmdcbiAgcmVhZG9ubHkgc2VlZD86IFR1cnNvRGF0YWJhc2VTZWVkXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUdXJzb0RhdGFiYXNlRW5jcnlwdGlvblxuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgcHJvdmlkZXIgd2lsbCBhZG9wdCBhbiBleGlzdGluZyBUdXJzbyBkYXRhYmFzZSB3aGVuXG4gICAqIGNyZWF0aW9uIHJlcG9ydHMgdGhhdCB0aGUgZGF0YWJhc2UgYWxyZWFkeSBleGlzdHMuXG4gICAqXG4gICAqIFRoaXMgZmxhZyBpcyBvbmx5IHVzZWQgZHVyaW5nIENyZWF0ZSByZXF1ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFkb3B0PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgdGhlIHVuZGVybHlpbmcgY3VzdG9tIHJlc291cmNlLlxuICAgKiBTZXQgdG8gYFJlbW92YWxQb2xpY3kuUkVUQUlOYCB0byBrZWVwIHRoZSBUdXJzbyBkYXRhYmFzZSBvbiBzdGFja1xuICAgKiBkZWxldGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5XG59XG5cbmV4cG9ydCBjbGFzcyBUdXJzb0RhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGRiSWQ6IHN0cmluZ1xuICAvKipcbiAgICogRE5TIGhvc3RuYW1lIGZvciB0aGUgZGF0YWJhc2UgKGUuZy4sIGBteS1kYi1teS1vcmcudHVyc28uaW9gKS5cbiAgICogVXNlIHdpdGggbGliU1FMIG9yIEhUVFAgY29ubmVjdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZ1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VOYW1lOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVHVyc29EYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgaWYgKCEvXlthLXowLTktXSskLy50ZXN0KHByb3BzLmRhdGFiYXNlTmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJkYXRhYmFzZU5hbWUgbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMsIG51bWJlcnMsIGFuZCBkYXNoZXNcIixcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKHByb3BzLmRhdGFiYXNlTmFtZS5sZW5ndGggPiA2NCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZGF0YWJhc2VOYW1lIG11c3QgYmUgYXQgbW9zdCA2NCBjaGFyYWN0ZXJzXCIpXG4gICAgfVxuXG4gICAgY29uc3QgcmVzb3VyY2VQcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICBSZXNvdXJjZVR5cGU6IFwiRGF0YWJhc2VcIixcbiAgICAgIERhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgR3JvdXA6IHByb3BzLmdyb3VwLFxuICAgICAgT3JnYW5pemF0aW9uU2x1ZzogcHJvcHMub3JnYW5pemF0aW9uU2x1ZyxcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2l6ZUxpbWl0KSB7XG4gICAgICByZXNvdXJjZVByb3BzLlNpemVMaW1pdCA9IHByb3BzLnNpemVMaW1pdFxuICAgIH1cbiAgICBpZiAocHJvcHMuc2VlZCkge1xuICAgICAgcmVzb3VyY2VQcm9wcy5TZWVkID0gcHJvcHMuc2VlZFxuICAgIH1cbiAgICBpZiAocHJvcHMuZW5jcnlwdGlvbikge1xuICAgICAgcmVzb3VyY2VQcm9wcy5FbmNyeXB0aW9uID0gcHJvcHMuZW5jcnlwdGlvblxuICAgIH1cbiAgICBpZiAocHJvcHMuYWRvcHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzb3VyY2VQcm9wcy5BZG9wdCA9IHByb3BzLmFkb3B0XG4gICAgfVxuXG4gICAgY29uc3QgY3IgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJUdXJzb0RiXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogcHJvcHMucHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgcmVzb3VyY2VUeXBlOiBcIkN1c3RvbTo6VHVyc29EYXRhYmFzZVwiLFxuICAgICAgcHJvcGVydGllczogcmVzb3VyY2VQcm9wcyxcbiAgICB9KVxuXG4gICAgaWYgKHByb3BzLnJlbW92YWxQb2xpY3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY3IuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpXG4gICAgfVxuXG4gICAgdGhpcy5kYklkID0gY3IuZ2V0QXR0U3RyaW5nKFwiRGJJZFwiKVxuICAgIHRoaXMuaG9zdG5hbWUgPSBjci5nZXRBdHRTdHJpbmcoXCJIb3N0bmFtZVwiKVxuICAgIHRoaXMuZGF0YWJhc2VOYW1lID0gY3IuZ2V0QXR0U3RyaW5nKFwiTmFtZVwiKVxuICB9XG59XG4iXX0=
54
+ TursoDatabase[_a] = { fqn: "cdk-turso.TursoDatabase", version: "0.4.7" };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBMkQ7QUFDM0QsMkNBQXNDO0FBMkN0QyxNQUFhLGFBQWMsU0FBUSxzQkFBUztJQVMxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUUsQ0FDeEUsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQTRCO1lBQzdDLFlBQVksRUFBRSxVQUFVO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFBO1FBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFBO1FBQzNDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLGFBQWEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsYUFBYSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFBO1FBQzdDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssMkJBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFBO1FBQ25DLENBQUM7UUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLDRCQUFjLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUM3QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1lBQ3pDLFlBQVksRUFBRSx1QkFBdUI7WUFDckMsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFDRSxLQUFLLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDakMsS0FBSyxDQUFDLGFBQWEsS0FBSywyQkFBYSxDQUFDLFFBQVEsRUFDOUMsQ0FBQztZQUNELEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLENBQUM7O0FBNURILHNDQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbVJlc291cmNlLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB0eXBlIHsgSVR1cnNvUHJvdmlkZXIgfSBmcm9tIFwiLi90dXJzby1wcm92aWRlclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29EYXRhYmFzZVNlZWQge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmdcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nXG4gIHJlYWRvbmx5IHRpbWVzdGFtcD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvRGF0YWJhc2VFbmNyeXB0aW9uIHtcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleTogc3RyaW5nXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25DaXBoZXI6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR1cnNvRGF0YWJhc2VQcm9wcyB7XG4gIHJlYWRvbmx5IHByb3ZpZGVyOiBJVHVyc29Qcm92aWRlclxuICByZWFkb25seSBkYXRhYmFzZU5hbWU6IHN0cmluZ1xuICByZWFkb25seSBncm91cDogc3RyaW5nXG4gIHJlYWRvbmx5IG9yZ2FuaXphdGlvblNsdWc6IHN0cmluZ1xuICByZWFkb25seSBzaXplTGltaXQ/OiBzdHJpbmdcbiAgcmVhZG9ubHkgc2VlZD86IFR1cnNvRGF0YWJhc2VTZWVkXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBUdXJzb0RhdGFiYXNlRW5jcnlwdGlvblxuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgcHJvdmlkZXIgd2lsbCBhZG9wdCBhbiBleGlzdGluZyBUdXJzbyBkYXRhYmFzZSB3aGVuXG4gICAqIGNyZWF0aW9uIHJlcG9ydHMgdGhhdCB0aGUgZGF0YWJhc2UgYWxyZWFkeSBleGlzdHMuXG4gICAqXG4gICAqIFRoaXMgZmxhZyBpcyBvbmx5IHVzZWQgZHVyaW5nIENyZWF0ZSByZXF1ZXN0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFkb3B0PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBSZW1vdmFsIHBvbGljeSBmb3IgdGhlIHVuZGVybHlpbmcgY3VzdG9tIHJlc291cmNlLlxuICAgKiBTZXQgdG8gYFJlbW92YWxQb2xpY3kuUkVUQUlOYCB0byBrZWVwIHRoZSBUdXJzbyBkYXRhYmFzZSBvbiBzdGFja1xuICAgKiBkZWxldGlvbi5cbiAgICogU2V0IHRvIGBSZW1vdmFsUG9saWN5LlNOQVBTSE9UYCB0byBjcmVhdGUgYSBwb2ludC1pbi10aW1lIFR1cnNvIGRhdGFiYXNlXG4gICAqIHNuYXBzaG90IGJlZm9yZSBkZWxldGluZyB0aGUgZGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeVxufVxuXG5leHBvcnQgY2xhc3MgVHVyc29EYXRhYmFzZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBkYklkOiBzdHJpbmdcbiAgLyoqXG4gICAqIEROUyBob3N0bmFtZSBmb3IgdGhlIGRhdGFiYXNlIChlLmcuLCBgbXktZGItbXktb3JnLnR1cnNvLmlvYCkuXG4gICAqIFVzZSB3aXRoIGxpYlNRTCBvciBIVFRQIGNvbm5lY3Rpb25zLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmdcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFR1cnNvRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGlmICghL15bYS16MC05LV0rJC8udGVzdChwcm9wcy5kYXRhYmFzZU5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiZGF0YWJhc2VOYW1lIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgZGFzaGVzXCIsXG4gICAgICApXG4gICAgfVxuICAgIGlmIChwcm9wcy5kYXRhYmFzZU5hbWUubGVuZ3RoID4gNjQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImRhdGFiYXNlTmFtZSBtdXN0IGJlIGF0IG1vc3QgNjQgY2hhcmFjdGVyc1wiKVxuICAgIH1cblxuICAgIGNvbnN0IHJlc291cmNlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgUmVzb3VyY2VUeXBlOiBcIkRhdGFiYXNlXCIsXG4gICAgICBEYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgIEdyb3VwOiBwcm9wcy5ncm91cCxcbiAgICAgIE9yZ2FuaXphdGlvblNsdWc6IHByb3BzLm9yZ2FuaXphdGlvblNsdWcsXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnNpemVMaW1pdCkge1xuICAgICAgcmVzb3VyY2VQcm9wcy5TaXplTGltaXQgPSBwcm9wcy5zaXplTGltaXRcbiAgICB9XG4gICAgaWYgKHByb3BzLnNlZWQpIHtcbiAgICAgIHJlc291cmNlUHJvcHMuU2VlZCA9IHByb3BzLnNlZWRcbiAgICB9XG4gICAgaWYgKHByb3BzLmVuY3J5cHRpb24pIHtcbiAgICAgIHJlc291cmNlUHJvcHMuRW5jcnlwdGlvbiA9IHByb3BzLmVuY3J5cHRpb25cbiAgICB9XG4gICAgaWYgKHByb3BzLnJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuU05BUFNIT1QpIHtcbiAgICAgIHJlc291cmNlUHJvcHMuU25hcHNob3RPbkRlbGV0ZSA9IHRydWVcbiAgICB9XG4gICAgaWYgKHByb3BzLmFkb3B0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc291cmNlUHJvcHMuQWRvcHQgPSBwcm9wcy5hZG9wdFxuICAgIH1cblxuICAgIGNvbnN0IGNyID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiVHVyc29EYlwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3BzLnByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHJlc291cmNlVHlwZTogXCJDdXN0b206OlR1cnNvRGF0YWJhc2VcIixcbiAgICAgIHByb3BlcnRpZXM6IHJlc291cmNlUHJvcHMsXG4gICAgfSlcblxuICAgIGlmIChcbiAgICAgIHByb3BzLnJlbW92YWxQb2xpY3kgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMucmVtb3ZhbFBvbGljeSAhPT0gUmVtb3ZhbFBvbGljeS5TTkFQU0hPVFxuICAgICkge1xuICAgICAgY3IuYXBwbHlSZW1vdmFsUG9saWN5KHByb3BzLnJlbW92YWxQb2xpY3kpXG4gICAgfVxuXG4gICAgdGhpcy5kYklkID0gY3IuZ2V0QXR0U3RyaW5nKFwiRGJJZFwiKVxuICAgIHRoaXMuaG9zdG5hbWUgPSBjci5nZXRBdHRTdHJpbmcoXCJIb3N0bmFtZVwiKVxuICAgIHRoaXMuZGF0YWJhc2VOYW1lID0gY3IuZ2V0QXR0U3RyaW5nKFwiTmFtZVwiKVxuICB9XG59XG4iXX0=
@@ -48,5 +48,5 @@ class TursoProvider extends constructs_1.Construct {
48
48
  }
49
49
  exports.TursoProvider = TursoProvider;
50
50
  _a = JSII_RTTI_SYMBOL_1;
51
- TursoProvider[_a] = { fqn: "cdk-turso.TursoProvider", version: "0.4.6" };
51
+ TursoProvider[_a] = { fqn: "cdk-turso.TursoProvider", version: "0.4.7" };
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVyc28tcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHVyc28tcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBc0M7QUFDdEMsdURBQStFO0FBRy9FLG1FQUF1RDtBQUN2RCwyQ0FBc0M7QUFDdEMsNkJBQTRCO0FBWTVCLE1BQU0scUJBQXNCLFNBQVEsc0JBQVM7SUFHM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUFvQjtRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFBO0lBQ2xDLENBQUM7Q0FDRjtBQWdCRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsc0JBQVM7SUFDMUM7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQzVCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixZQUFvQjtRQUVwQixPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBY0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxxQkFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDM0MsT0FBTyxFQUFFLElBQUksb0JBQU8sQ0FBQyxZQUFZLEVBQUUsMEJBQWEsQ0FBQyxNQUFNLENBQUM7WUFDeEQsT0FBTyxFQUFFLGVBQWU7WUFDeEIsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDNUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFdBQVcsRUFBRTtnQkFDWCw4QkFBOEIsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWE7YUFDN0Q7U0FDRixDQUFDLENBQUE7UUFFRixLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSwyQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUE7SUFDM0MsQ0FBQzs7QUE5Q0gsc0NBK0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29kZSwgRnVuY3Rpb24sIFJ1bnRpbWUsIFJ1bnRpbWVGYW1pbHkgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgdHlwZSB7IElMb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiXG5pbXBvcnQgdHlwZSB7IElQYXJhbWV0ZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNzbVwiXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG4vKipcbiAqIFNoYXJlZCBUdXJzbyBjdXN0b20tcmVzb3VyY2UgcHJvdmlkZXIgY29udHJhY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVR1cnNvUHJvdmlkZXIge1xuICAvKipcbiAgICogVGhlIENESyBjdXN0b20tcmVzb3VyY2UgcHJvdmlkZXIgc2VydmljZSB0b2tlbi5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG59XG5cbmNsYXNzIEltcG9ydGVkVHVyc29Qcm92aWRlciBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElUdXJzb1Byb3ZpZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VydmljZVRva2VuOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLnNlcnZpY2VUb2tlbiA9IHNlcnZpY2VUb2tlblxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVyc29Qcm92aWRlclByb3BzIHtcbiAgLyoqXG4gICAqIFNTTSBwYXJhbWV0ZXIgdGhhdCBob2xkcyB0aGUgVHVyc28gcGxhdGZvcm0gQVBJIHRva2VuXG4gICAqIChzdG9yZWQgYXMgU2VjdXJlU3RyaW5nKS5cbiAgICovXG4gIHJlYWRvbmx5IGFwaVRva2VuOiBJUGFyYW1ldGVyXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxvZyBncm91cCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIGxvZyBncm91cCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogSUxvZ0dyb3VwIHwgdW5kZWZpbmVkXG59XG5cbi8qKlxuICogU2hhcmVkIExhbWJkYSArIENsb3VkRm9ybWF0aW9uIGN1c3RvbS1yZXNvdXJjZSBwcm92aWRlciBmb3IgYWxsXG4gKiBUdXJzbyByZXNvdXJjZXMuICBDcmVhdGUgb25lIHBlciBzdGFjayBhbmQgcGFzcyBpdCB0byBldmVyeVxuICogYFR1cnNvRGF0YWJhc2VgLCBgVHVyc29BdXRoVG9rZW5gLCBldGMuXG4gKi9cbmV4cG9ydCBjbGFzcyBUdXJzb1Byb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSVR1cnNvUHJvdmlkZXIge1xuICAvKipcbiAgICogSW1wb3J0cyBhbiBleGlzdGluZyBUdXJzbyBwcm92aWRlciBieSBzZXJ2aWNlIHRva2VuLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VydmljZVRva2VuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBzZXJ2aWNlVG9rZW46IHN0cmluZyxcbiAgKTogSVR1cnNvUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRUdXJzb1Byb3ZpZGVyKHNjb3BlLCBpZCwgc2VydmljZVRva2VuKVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBMYW1iZGEgZnVuY3Rpb24gYmFja2luZyBhbGwgVHVyc28gY3VzdG9tIHJlc291cmNlcy5cbiAgICogVXNlIHRoaXMgdG8gYXR0YWNoIGFkZGl0aW9uYWwgSUFNIHBlcm1pc3Npb25zIHdoZW4gYSByZXNvdXJjZVxuICAgKiB0eXBlIG5lZWRzIHRoZW0gKGUuZy4gYHNzbTpQdXRQYXJhbWV0ZXJgIGZvciBhdXRoLXRva2VuIHN0b3JhZ2UpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhhbmRsZXI6IEZ1bmN0aW9uXG5cbiAgLyoqXG4gICAqIFRoZSBDREsgY3VzdG9tLXJlc291cmNlIHByb3ZpZGVyIHNlcnZpY2UgdG9rZW4uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZVRva2VuOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogVHVyc29Qcm92aWRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5oYW5kbGVyID0gbmV3IEZ1bmN0aW9uKHRoaXMsIFwiSGFuZGxlclwiLCB7XG4gICAgICBydW50aW1lOiBuZXcgUnVudGltZShcIm5vZGVqczI0LnhcIiwgUnVudGltZUZhbWlseS5OT0RFSlMpLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCBcImhhbmRsZXJcIikpLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygzKSxcbiAgICAgIGxvZ0dyb3VwOiBwcm9wcy5sb2dHcm91cCxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFRVUlNPX0FQSV9UT0tFTl9QQVJBTUVURVJfTkFNRTogcHJvcHMuYXBpVG9rZW4ucGFyYW1ldGVyTmFtZSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHByb3BzLmFwaVRva2VuLmdyYW50UmVhZCh0aGlzLmhhbmRsZXIpXG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiB0aGlzLmhhbmRsZXIsXG4gICAgICBsb2dHcm91cDogcHJvcHMubG9nR3JvdXAsXG4gICAgfSlcblxuICAgIHRoaXMuc2VydmljZVRva2VuID0gcHJvdmlkZXIuc2VydmljZVRva2VuXG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -74,7 +74,7 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "version": "0.4.6",
77
+ "version": "0.4.7",
78
78
  "jest": {
79
79
  "coverageProvider": "v8",
80
80
  "testMatch": [