@effect/sql-sqlite-react-native 4.0.0-beta.5 → 4.0.0-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@effect/sql-sqlite-react-native`
2
2
 
3
- An `@effect/sql` implementation using the `react-native-quick-sqlite` library.
3
+ An `@effect/sql` implementation using the `@op-engineering/op-sqlite` library.
4
4
 
5
5
  ## Documentation
6
6
 
@@ -1,8 +1,8 @@
1
1
  import * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Layer from "effect/Layer";
4
5
  import * as Scope from "effect/Scope";
5
- import * as ServiceMap from "effect/ServiceMap";
6
6
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
7
7
  import * as Client from "effect/unstable/sql/SqlClient";
8
8
  /**
@@ -29,7 +29,7 @@ export interface SqliteClient extends Client.SqlClient {
29
29
  * @category tags
30
30
  * @since 1.0.0
31
31
  */
32
- export declare const SqliteClient: ServiceMap.Service<SqliteClient, SqliteClient>;
32
+ export declare const SqliteClient: Context.Service<SqliteClient, SqliteClient>;
33
33
  /**
34
34
  * @category models
35
35
  * @since 1.0.0
@@ -46,7 +46,7 @@ export interface SqliteClientConfig {
46
46
  * @category fiber refs
47
47
  * @since 1.0.0
48
48
  */
49
- export declare const AsyncQuery: ServiceMap.Reference<boolean>;
49
+ export declare const AsyncQuery: Context.Reference<boolean>;
50
50
  /**
51
51
  * @category fiber refs
52
52
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAOvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAwD,CAAA;AAE7E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,+CAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,gDAAmF,CAAA;AAE5G;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,+BAGtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CACrB,CAAA;AAIjD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAkGrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
1
+ {"version":3,"file":"SqliteClient.d.ts","sourceRoot":"","sources":["../src/SqliteClient.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,UAAU,MAAM,uCAAuC,CAAA;AACnE,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAUvD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAwD,CAAA;AAE7E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,+CAA+C,CAAA;AAEpE;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,SAAS;IACpD,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAA;IAEnC,8BAA8B;IAC9B,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAA;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,6CAAgF,CAAA;AAEzG;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAA;IAC7D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;IACrE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,SAAS,CAAA;CACrE;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,4BAGtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CACrB,CAAA;AAIjD;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,SAAS,kBAAkB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,UAAU,CAmGrE,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAUzB,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,kBAAkB,KACzB,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAML,CAAA"}
@@ -3,18 +3,23 @@
3
3
  */
4
4
  import * as Sqlite from "@op-engineering/op-sqlite";
5
5
  import * as Config from "effect/Config";
6
+ import * as Context from "effect/Context";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Fiber from "effect/Fiber";
8
9
  import { constFalse, identity } from "effect/Function";
9
10
  import * as Layer from "effect/Layer";
10
11
  import * as Scope from "effect/Scope";
11
- import * as ServiceMap from "effect/ServiceMap";
12
+ import * as Semaphore from "effect/Semaphore";
12
13
  import * as Stream from "effect/Stream";
13
14
  import * as Reactivity from "effect/unstable/reactivity/Reactivity";
14
15
  import * as Client from "effect/unstable/sql/SqlClient";
15
- import { SqlError } from "effect/unstable/sql/SqlError";
16
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError";
16
17
  import * as Statement from "effect/unstable/sql/Statement";
17
18
  const ATTR_DB_SYSTEM_NAME = "db.system.name";
19
+ const classifyError = (cause, message, operation) => classifySqliteError(cause, {
20
+ message,
21
+ operation
22
+ });
18
23
  /**
19
24
  * @category type ids
20
25
  * @since 1.0.0
@@ -24,12 +29,12 @@ export const TypeId = "~@effect/sql-sqlite-react-native/SqliteClient";
24
29
  * @category tags
25
30
  * @since 1.0.0
26
31
  */
27
- export const SqliteClient = /*#__PURE__*/ServiceMap.Service("@effect/sql-sqlite-react-native/SqliteClient");
32
+ export const SqliteClient = /*#__PURE__*/Context.Service("@effect/sql-sqlite-react-native/SqliteClient");
28
33
  /**
29
34
  * @category fiber refs
30
35
  * @since 1.0.0
31
36
  */
32
- export const AsyncQuery = /*#__PURE__*/ServiceMap.Reference("@effect/sql-sqlite-react-native/Client/asyncQuery", {
37
+ export const AsyncQuery = /*#__PURE__*/Context.Reference("@effect/sql-sqlite-react-native/Client/asyncQuery", {
33
38
  defaultValue: constFalse
34
39
  });
35
40
  /**
@@ -61,8 +66,7 @@ export const make = options => Effect.gen(function* () {
61
66
  return Effect.map(Effect.tryPromise({
62
67
  try: () => db.execute(sql, params),
63
68
  catch: cause => new SqlError({
64
- cause,
65
- message: "Failed to execute statement (async)"
69
+ reason: classifyError(cause, "Failed to execute statement (async)", "execute")
66
70
  })
67
71
  }), result => values ? result.rawRows ?? [] : result.rows);
68
72
  }
@@ -72,8 +76,7 @@ export const make = options => Effect.gen(function* () {
72
76
  return values ? result.rawRows ?? [] : result.rows;
73
77
  },
74
78
  catch: cause => new SqlError({
75
- cause,
76
- message: "Failed to execute statement"
79
+ reason: classifyError(cause, "Failed to execute statement", "execute")
77
80
  })
78
81
  });
79
82
  });
@@ -95,12 +98,12 @@ export const make = options => Effect.gen(function* () {
95
98
  }
96
99
  });
97
100
  });
98
- const semaphore = yield* Effect.makeSemaphore(1);
101
+ const semaphore = yield* Semaphore.make(1);
99
102
  const connection = yield* makeConnection;
100
103
  const acquirer = semaphore.withPermits(1)(Effect.succeed(connection));
101
104
  const transactionAcquirer = Effect.uninterruptibleMask(restore => {
102
105
  const fiber = Fiber.getCurrent();
103
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope);
106
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope);
104
107
  return Effect.as(Effect.tap(restore(semaphore.take(1)), () => Scope.addFinalizer(scope, semaphore.release(1))), connection);
105
108
  });
106
109
  return Object.assign(yield* Client.make({
@@ -118,10 +121,10 @@ export const make = options => Effect.gen(function* () {
118
121
  * @category layers
119
122
  * @since 1.0.0
120
123
  */
121
- export const layerConfig = config => Layer.effectServices(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
124
+ export const layerConfig = config => Layer.effectContext(Config.unwrap(config).asEffect().pipe(Effect.flatMap(make), Effect.map(client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client))))).pipe(Layer.provide(Reactivity.layer));
122
125
  /**
123
126
  * @category layers
124
127
  * @since 1.0.0
125
128
  */
126
- export const layer = config => Layer.effectServices(Effect.map(make(config), client => ServiceMap.make(SqliteClient, client).pipe(ServiceMap.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
129
+ export const layer = config => Layer.effectContext(Effect.map(make(config), client => Context.make(SqliteClient, client).pipe(Context.add(Client.SqlClient, client)))).pipe(Layer.provide(Reactivity.layer));
127
130
  //# sourceMappingURL=SqliteClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Effect","Fiber","constFalse","identity","Layer","Scope","ServiceMap","Stream","Reactivity","Client","SqlError","Statement","ATTR_DB_SYSTEM_NAME","TypeId","SqliteClient","Service","AsyncQuery","Reference","defaultValue","withAsyncQuery","effect","provideService","make","options","gen","clientOptions","name","filename","location","encryptionKey","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","open","addFinalizer","sync","close","run","sql","params","values","withFiber","fiber","getRef","map","tryPromise","try","execute","catch","cause","message","result","rawRows","rows","executeSync","executeRaw","executeValues","executeUnprepared","executeStream","die","semaphore","makeSemaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","services","as","tap","take","release","Object","assign","spanAttributes","entries","config","layerConfig","effectServices","unwrap","asEffect","pipe","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SqliteClient.js","names":["Sqlite","Config","Context","Effect","Fiber","constFalse","identity","Layer","Scope","Semaphore","Stream","Reactivity","Client","classifySqliteError","SqlError","Statement","ATTR_DB_SYSTEM_NAME","classifyError","cause","message","operation","TypeId","SqliteClient","Service","AsyncQuery","Reference","defaultValue","withAsyncQuery","effect","provideService","make","options","gen","clientOptions","name","filename","location","encryptionKey","compiler","makeCompilerSqlite","transformQueryNames","transformRows","transformResultNames","defaultTransforms","array","undefined","makeConnection","db","open","addFinalizer","sync","close","run","sql","params","values","withFiber","fiber","getRef","map","tryPromise","try","execute","catch","reason","result","rawRows","rows","executeSync","executeRaw","executeValues","executeUnprepared","executeStream","die","semaphore","connection","acquirer","withPermits","succeed","transactionAcquirer","uninterruptibleMask","restore","getCurrent","scope","getUnsafe","context","as","tap","take","release","Object","assign","spanAttributes","entries","config","layerConfig","effectContext","unwrap","asEffect","pipe","flatMap","client","add","SqlClient","provide","layer"],"sources":["../src/SqliteClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/sql-sqlite-react-native",
3
- "version": "4.0.0-beta.5",
3
+ "version": "4.0.0-beta.50",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "A SQLite toolkit for Effect",
@@ -43,12 +43,12 @@
43
43
  "provenance": true
44
44
  },
45
45
  "devDependencies": {
46
- "@op-engineering/op-sqlite": "15.2.5",
47
- "effect": "^4.0.0-beta.5"
46
+ "@op-engineering/op-sqlite": "15.2.11",
47
+ "effect": "^4.0.0-beta.50"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@op-engineering/op-sqlite": "15.0.4",
51
- "effect": "^4.0.0-beta.5"
51
+ "effect": "^4.0.0-beta.50"
52
52
  },
53
53
  "scripts": {
54
54
  "codegen": "effect-utils codegen",
@@ -3,21 +3,25 @@
3
3
  */
4
4
  import * as Sqlite from "@op-engineering/op-sqlite"
5
5
  import * as Config from "effect/Config"
6
+ import * as Context from "effect/Context"
6
7
  import * as Effect from "effect/Effect"
7
8
  import * as Fiber from "effect/Fiber"
8
9
  import { constFalse, identity } from "effect/Function"
9
10
  import * as Layer from "effect/Layer"
10
11
  import * as Scope from "effect/Scope"
11
- import * as ServiceMap from "effect/ServiceMap"
12
+ import * as Semaphore from "effect/Semaphore"
12
13
  import * as Stream from "effect/Stream"
13
14
  import * as Reactivity from "effect/unstable/reactivity/Reactivity"
14
15
  import * as Client from "effect/unstable/sql/SqlClient"
15
16
  import type { Connection } from "effect/unstable/sql/SqlConnection"
16
- import { SqlError } from "effect/unstable/sql/SqlError"
17
+ import { classifySqliteError, SqlError } from "effect/unstable/sql/SqlError"
17
18
  import * as Statement from "effect/unstable/sql/Statement"
18
19
 
19
20
  const ATTR_DB_SYSTEM_NAME = "db.system.name"
20
21
 
22
+ const classifyError = (cause: unknown, message: string, operation: string) =>
23
+ classifySqliteError(cause, { message, operation })
24
+
21
25
  /**
22
26
  * @category type ids
23
27
  * @since 1.0.0
@@ -46,7 +50,7 @@ export interface SqliteClient extends Client.SqlClient {
46
50
  * @category tags
47
51
  * @since 1.0.0
48
52
  */
49
- export const SqliteClient = ServiceMap.Service<SqliteClient>("@effect/sql-sqlite-react-native/SqliteClient")
53
+ export const SqliteClient = Context.Service<SqliteClient>("@effect/sql-sqlite-react-native/SqliteClient")
50
54
 
51
55
  /**
52
56
  * @category models
@@ -65,7 +69,7 @@ export interface SqliteClientConfig {
65
69
  * @category fiber refs
66
70
  * @since 1.0.0
67
71
  */
68
- export const AsyncQuery = ServiceMap.Reference<boolean>(
72
+ export const AsyncQuery = Context.Reference<boolean>(
69
73
  "@effect/sql-sqlite-react-native/Client/asyncQuery",
70
74
  { defaultValue: constFalse }
71
75
  )
@@ -116,7 +120,8 @@ export const make = (
116
120
  return Effect.map(
117
121
  Effect.tryPromise({
118
122
  try: () => db.execute(sql, params as Array<any>),
119
- catch: (cause) => new SqlError({ cause, message: "Failed to execute statement (async)" })
123
+ catch: (cause) =>
124
+ new SqlError({ reason: classifyError(cause, "Failed to execute statement (async)", "execute") })
120
125
  }),
121
126
  (result) => values ? result.rawRows ?? [] : result.rows
122
127
  )
@@ -126,7 +131,7 @@ export const make = (
126
131
  const result = db.executeSync(sql, params as Array<any>)
127
132
  return values ? result.rawRows ?? [] : result.rows
128
133
  },
129
- catch: (cause) => new SqlError({ cause, message: "Failed to execute statement" })
134
+ catch: (cause) => new SqlError({ reason: classifyError(cause, "Failed to execute statement", "execute") })
130
135
  })
131
136
  })
132
137
 
@@ -151,13 +156,13 @@ export const make = (
151
156
  })
152
157
  })
153
158
 
154
- const semaphore = yield* Effect.makeSemaphore(1)
159
+ const semaphore = yield* Semaphore.make(1)
155
160
  const connection = yield* makeConnection
156
161
 
157
162
  const acquirer = semaphore.withPermits(1)(Effect.succeed(connection))
158
163
  const transactionAcquirer = Effect.uninterruptibleMask((restore) => {
159
164
  const fiber = Fiber.getCurrent()!
160
- const scope = ServiceMap.getUnsafe(fiber.services, Scope.Scope)
165
+ const scope = Context.getUnsafe(fiber.context, Scope.Scope)
161
166
  return Effect.as(
162
167
  Effect.tap(
163
168
  restore(semaphore.take(1)),
@@ -192,12 +197,12 @@ export const make = (
192
197
  export const layerConfig = (
193
198
  config: Config.Wrap<SqliteClientConfig>
194
199
  ): Layer.Layer<SqliteClient | Client.SqlClient, Config.ConfigError> =>
195
- Layer.effectServices(
200
+ Layer.effectContext(
196
201
  Config.unwrap(config).asEffect().pipe(
197
202
  Effect.flatMap(make),
198
203
  Effect.map((client) =>
199
- ServiceMap.make(SqliteClient, client).pipe(
200
- ServiceMap.add(Client.SqlClient, client)
204
+ Context.make(SqliteClient, client).pipe(
205
+ Context.add(Client.SqlClient, client)
201
206
  )
202
207
  )
203
208
  )
@@ -210,10 +215,10 @@ export const layerConfig = (
210
215
  export const layer = (
211
216
  config: SqliteClientConfig
212
217
  ): Layer.Layer<SqliteClient | Client.SqlClient> =>
213
- Layer.effectServices(
218
+ Layer.effectContext(
214
219
  Effect.map(make(config), (client) =>
215
- ServiceMap.make(SqliteClient, client).pipe(
216
- ServiceMap.add(Client.SqlClient, client)
220
+ Context.make(SqliteClient, client).pipe(
221
+ Context.add(Client.SqlClient, client)
217
222
  ))
218
223
  ).pipe(Layer.provide(Reactivity.layer))
219
224