@exabugs/dynamodb-client 0.3.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +35 -23
  3. package/dist/client/Collection.d.ts +1 -1
  4. package/dist/client/Collection.d.ts.map +1 -1
  5. package/dist/client/FindCursor.d.ts +1 -1
  6. package/dist/client/FindCursor.d.ts.map +1 -1
  7. package/dist/index.d.ts +1 -7
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +4 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/server/handler.cjs +8186 -7921
  12. package/dist/server/handler.cjs.map +4 -4
  13. package/dist/server/handler.d.ts.map +1 -1
  14. package/dist/server/handler.js +1 -2
  15. package/dist/server/handler.js.map +1 -1
  16. package/dist/server/operations/deleteMany.js +1 -1
  17. package/dist/server/operations/deleteMany.js.map +1 -1
  18. package/dist/server/operations/deleteOne.js +1 -1
  19. package/dist/server/operations/deleteOne.js.map +1 -1
  20. package/dist/server/operations/find/handler.d.ts +21 -0
  21. package/dist/server/operations/find/handler.d.ts.map +1 -0
  22. package/dist/server/operations/find/handler.js +53 -0
  23. package/dist/server/operations/find/handler.js.map +1 -0
  24. package/dist/server/operations/find/idQuery.d.ts +16 -0
  25. package/dist/server/operations/find/idQuery.d.ts.map +1 -0
  26. package/dist/server/operations/find/idQuery.js +149 -0
  27. package/dist/server/operations/find/idQuery.js.map +1 -0
  28. package/dist/server/operations/find/index.d.ts +9 -0
  29. package/dist/server/operations/find/index.d.ts.map +1 -0
  30. package/dist/server/operations/find/index.js +9 -0
  31. package/dist/server/operations/find/index.js.map +1 -0
  32. package/dist/server/operations/find/shadowQuery.d.ts +16 -0
  33. package/dist/server/operations/find/shadowQuery.d.ts.map +1 -0
  34. package/dist/server/operations/find/shadowQuery.js +283 -0
  35. package/dist/server/operations/find/shadowQuery.js.map +1 -0
  36. package/dist/server/operations/find/types.d.ts +71 -0
  37. package/dist/server/operations/find/types.d.ts.map +1 -0
  38. package/dist/server/operations/find/types.js +5 -0
  39. package/dist/server/operations/find/types.js.map +1 -0
  40. package/dist/server/operations/find/utils.d.ts +37 -0
  41. package/dist/server/operations/find/utils.d.ts.map +1 -0
  42. package/dist/server/operations/find/utils.js +117 -0
  43. package/dist/server/operations/find/utils.js.map +1 -0
  44. package/dist/server/operations/find.d.ts +4 -14
  45. package/dist/server/operations/find.d.ts.map +1 -1
  46. package/dist/server/operations/find.js +2 -368
  47. package/dist/server/operations/find.js.map +1 -1
  48. package/dist/server/operations/findMany.js +1 -1
  49. package/dist/server/operations/findMany.js.map +1 -1
  50. package/dist/server/operations/findManyReference.d.ts.map +1 -1
  51. package/dist/server/operations/findManyReference.js +2 -1
  52. package/dist/server/operations/findManyReference.js.map +1 -1
  53. package/dist/server/operations/findOne.js +1 -1
  54. package/dist/server/operations/findOne.js.map +1 -1
  55. package/dist/server/operations/insertMany.d.ts.map +1 -1
  56. package/dist/server/operations/insertMany.js +2 -1
  57. package/dist/server/operations/insertMany.js.map +1 -1
  58. package/dist/server/operations/insertOne.d.ts.map +1 -1
  59. package/dist/server/operations/insertOne.js +2 -1
  60. package/dist/server/operations/insertOne.js.map +1 -1
  61. package/dist/server/operations/updateMany.d.ts.map +1 -1
  62. package/dist/server/operations/updateMany.js +2 -1
  63. package/dist/server/operations/updateMany.js.map +1 -1
  64. package/dist/server/operations/updateOne.d.ts.map +1 -1
  65. package/dist/server/operations/updateOne.js +2 -1
  66. package/dist/server/operations/updateOne.js.map +1 -1
  67. package/dist/server/query/converter.d.ts +1 -1
  68. package/dist/server/query/converter.d.ts.map +1 -1
  69. package/dist/server/shadow/config.d.ts +13 -13
  70. package/dist/server/shadow/config.d.ts.map +1 -1
  71. package/dist/server/shadow/config.js +10 -10
  72. package/dist/server/shadow/differ.d.ts +3 -38
  73. package/dist/server/shadow/differ.d.ts.map +1 -1
  74. package/dist/server/shadow/differ.js +4 -62
  75. package/dist/server/shadow/differ.js.map +1 -1
  76. package/dist/server/shadow/generator.d.ts +1 -1
  77. package/dist/server/shadow/generator.d.ts.map +1 -1
  78. package/dist/server/shadow/generator.js +8 -19
  79. package/dist/server/shadow/generator.js.map +1 -1
  80. package/dist/server/shadow/index.d.ts +2 -1
  81. package/dist/server/shadow/index.d.ts.map +1 -1
  82. package/dist/server/shadow/index.js.map +1 -1
  83. package/dist/server/shadow/types.d.ts +4 -41
  84. package/dist/server/shadow/types.d.ts.map +1 -1
  85. package/dist/server/shadow/types.js +5 -0
  86. package/dist/server/shadow/types.js.map +1 -1
  87. package/dist/server/utils/bulkOperations.d.ts +0 -15
  88. package/dist/server/utils/bulkOperations.d.ts.map +1 -1
  89. package/dist/server/utils/bulkOperations.js +1 -16
  90. package/dist/server/utils/bulkOperations.js.map +1 -1
  91. package/dist/server/utils/chunking.d.ts +0 -9
  92. package/dist/server/utils/chunking.d.ts.map +1 -1
  93. package/dist/server/utils/chunking.js +1 -10
  94. package/dist/server/utils/chunking.js.map +1 -1
  95. package/dist/server/utils/dynamodb.js +1 -1
  96. package/dist/server/utils/dynamodb.js.map +1 -1
  97. package/dist/shadows/differ.d.ts +12 -12
  98. package/dist/shadows/differ.js +15 -15
  99. package/dist/shadows/differ.js.map +1 -1
  100. package/dist/shadows/generator.d.ts +53 -31
  101. package/dist/shadows/generator.d.ts.map +1 -1
  102. package/dist/shadows/generator.js +79 -35
  103. package/dist/shadows/generator.js.map +1 -1
  104. package/dist/shadows/index.d.ts +8 -10
  105. package/dist/shadows/index.d.ts.map +1 -1
  106. package/dist/shadows/index.js +12 -11
  107. package/dist/shadows/index.js.map +1 -1
  108. package/dist/shadows/types.d.ts +8 -28
  109. package/dist/shadows/types.d.ts.map +1 -1
  110. package/dist/shared/constants/dynamodb.d.ts +36 -0
  111. package/dist/shared/constants/dynamodb.d.ts.map +1 -0
  112. package/dist/shared/constants/dynamodb.js +100 -0
  113. package/dist/shared/constants/dynamodb.js.map +1 -0
  114. package/dist/shared/constants/http.d.ts +48 -0
  115. package/dist/shared/constants/http.d.ts.map +1 -0
  116. package/dist/shared/constants/http.js +48 -0
  117. package/dist/shared/constants/http.js.map +1 -0
  118. package/dist/shared/constants/index.d.ts +7 -0
  119. package/dist/shared/constants/index.d.ts.map +1 -0
  120. package/dist/shared/constants/index.js +7 -0
  121. package/dist/shared/constants/index.js.map +1 -0
  122. package/dist/shared/constants/lambda.d.ts +33 -0
  123. package/dist/shared/constants/lambda.d.ts.map +1 -0
  124. package/dist/shared/constants/lambda.js +33 -0
  125. package/dist/shared/constants/lambda.js.map +1 -0
  126. package/dist/{errors.d.ts → shared/errors/index.d.ts} +7 -1
  127. package/dist/shared/errors/index.d.ts.map +1 -0
  128. package/dist/{errors.js → shared/errors/index.js} +7 -1
  129. package/dist/shared/errors/index.js.map +1 -0
  130. package/dist/shared/index.d.ts +11 -0
  131. package/dist/shared/index.d.ts.map +1 -0
  132. package/dist/shared/index.js +15 -0
  133. package/dist/shared/index.js.map +1 -0
  134. package/dist/{types.d.ts → shared/types/index.d.ts} +7 -1
  135. package/dist/shared/types/index.d.ts.map +1 -0
  136. package/dist/shared/types/index.js +8 -0
  137. package/dist/shared/types/index.js.map +1 -0
  138. package/dist/shared/utils/dynamodb.d.ts +18 -0
  139. package/dist/shared/utils/dynamodb.d.ts.map +1 -0
  140. package/dist/shared/utils/dynamodb.js +32 -0
  141. package/dist/shared/utils/dynamodb.js.map +1 -0
  142. package/dist/shared/utils/index.d.ts +8 -0
  143. package/dist/shared/utils/index.d.ts.map +1 -0
  144. package/dist/shared/utils/index.js +8 -0
  145. package/dist/shared/utils/index.js.map +1 -0
  146. package/dist/{logger.d.ts → shared/utils/logger.d.ts} +7 -1
  147. package/dist/shared/utils/logger.d.ts.map +1 -0
  148. package/dist/{logger.js → shared/utils/logger.js} +7 -1
  149. package/dist/shared/utils/logger.js.map +1 -0
  150. package/dist/shared/utils/ulid.d.ts.map +1 -0
  151. package/dist/{ulid.js → shared/utils/ulid.js} +5 -0
  152. package/dist/shared/utils/ulid.js.map +1 -0
  153. package/dist/shared/utils/validation.d.ts +59 -0
  154. package/dist/shared/utils/validation.d.ts.map +1 -0
  155. package/dist/shared/utils/validation.js +114 -0
  156. package/dist/shared/utils/validation.js.map +1 -0
  157. package/package.json +8 -7
  158. package/terraform/README.md +8 -7
  159. package/dist/errors.d.ts.map +0 -1
  160. package/dist/errors.js.map +0 -1
  161. package/dist/logger.d.ts.map +0 -1
  162. package/dist/logger.js.map +0 -1
  163. package/dist/shadows/config.d.ts +0 -54
  164. package/dist/shadows/config.d.ts.map +0 -1
  165. package/dist/shadows/config.js +0 -95
  166. package/dist/shadows/config.js.map +0 -1
  167. package/dist/shadows/schema.d.ts +0 -63
  168. package/dist/shadows/schema.d.ts.map +0 -1
  169. package/dist/shadows/schema.js +0 -8
  170. package/dist/shadows/schema.js.map +0 -1
  171. package/dist/types.d.ts.map +0 -1
  172. package/dist/types.js +0 -2
  173. package/dist/types.js.map +0 -1
  174. package/dist/ulid.d.ts.map +0 -1
  175. package/dist/ulid.js.map +0 -1
  176. /package/dist/{ulid.d.ts → shared/utils/ulid.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.0] - 2024-12-23
11
+
12
+ ### Changed
13
+
14
+ - **Architecture**: Major architecture refactoring for improved maintainability
15
+ - Extracted shared modules to `src/shared/` directory structure
16
+ - Organized dependencies and eliminated circular dependencies
17
+ - Split large functions into modular components following single responsibility principle
18
+ - Improved code organization with clear 5-layer architecture: integrations → client → server → shadows → shared
19
+
20
+ ### Improved
21
+
22
+ - **Code Quality**: Enhanced maintainability and readability
23
+ - Split `handleFind` function (429 lines) into focused, testable modules
24
+ - Created unified error hierarchy and common utilities
25
+ - Standardized import paths and reduced code duplication
26
+ - Added architecture documentation and dependency validation tests
27
+
28
+ ### Technical
29
+
30
+ - **Dependencies**: Established clear dependency direction without circular references
31
+ - **Testing**: All 266 tests continue to pass with improved architecture
32
+ - **Documentation**: Added comprehensive architecture documentation
33
+
34
+ ## [0.3.7] - 2024-12-19
35
+
36
+ ### Removed
37
+
38
+ - **BREAKING CHANGE**: Complete removal of legacy shadow configuration support
39
+ - Removed `LegacyShadowConfig` and `ResourceShadowConfig` types from shadows module
40
+ - Removed duplicate shadow configuration types from server module
41
+ - Removed all shadow.config.json file support
42
+ - Only v0.3.x environment variable-based configuration is now supported
43
+
44
+ ### Changed
45
+
46
+ - Simplified type exports to only include v0.3.x specification types
47
+ - Updated documentation to reflect complete v0.3.x migration
48
+ - Consolidated shadow configuration to single source (environment variables)
49
+
50
+ ### Migration Guide
51
+
52
+ - Replace any usage of `ResourceShadowConfig` or `LegacyShadowConfig` with environment variables
53
+ - Use `SHADOW_CREATED_AT_FIELD`, `SHADOW_UPDATED_AT_FIELD`, `SHADOW_STRING_MAX_BYTES`, `SHADOW_NUMBER_PADDING`
54
+ - Remove any shadow.config.json files from your project
55
+
10
56
  ## [0.3.6] - 2024-12-02
11
57
 
12
58
  ### Changed
package/README.md CHANGED
@@ -20,6 +20,24 @@
20
20
 
21
21
  ---
22
22
 
23
+ ## 📖 Overview
24
+
25
+ **DynamoDB Client SDK** is a TypeScript-first library that brings MongoDB-like simplicity to AWS DynamoDB. Built for modern serverless applications, it provides a familiar API while leveraging DynamoDB's single-table design patterns for optimal performance and cost efficiency.
26
+
27
+ ### Why DynamoDB Client SDK?
28
+
29
+ - **🎯 Familiar API**: Use MongoDB-style queries with DynamoDB's power
30
+ - **⚡ Single-Table Design**: Optimized data modeling without the complexity
31
+ - **🔄 Shadow Records**: Efficient sorting without expensive Global Secondary Indexes
32
+ - **🛡️ Type Safety**: Full TypeScript support with compile-time validation
33
+ - **🚀 Serverless Ready**: Built for AWS Lambda with ARM64 optimization
34
+ - **🎨 Admin UI**: Integrated react-admin interface for content management
35
+ - **🏗️ Infrastructure**: Complete Terraform modules for production deployment
36
+
37
+ Perfect for building scalable web applications, content management systems, and serverless APIs that need the performance of DynamoDB with the developer experience of MongoDB.
38
+
39
+ ---
40
+
23
41
  ## ✨ Features
24
42
 
25
43
  <table>
@@ -108,9 +126,9 @@ graph TB
108
126
  C -->|HTTPS| D
109
127
  D -->|AWS SDK| E
110
128
 
111
- style A fill:#61dafb,stroke:#333,stroke-width:2px
112
- style B fill:#61dafb,stroke:#333,stroke-width:2px
113
- style C fill:#61dafb,stroke:#333,stroke-width:2px
129
+ style A fill:#2563eb,stroke:#333,stroke-width:2px,color:#fff
130
+ style B fill:#2563eb,stroke:#333,stroke-width:2px,color:#fff
131
+ style C fill:#2563eb,stroke:#333,stroke-width:2px,color:#fff
114
132
  style D fill:#ff9900,stroke:#333,stroke-width:2px
115
133
  style E fill:#527fff,stroke:#333,stroke-width:2px
116
134
  ```
@@ -141,32 +159,23 @@ This example includes:
141
159
  ### Quick Example
142
160
 
143
161
  ```typescript
144
- // 1. Define schema
145
- export const MySchema: SchemaRegistryConfig = {
146
- database: {
147
- name: 'myapp',
148
- timestamps: {
149
- createdAt: 'createdAt',
150
- updatedAt: 'updatedAt',
151
- },
152
- },
153
- resources: {
154
- articles: {
155
- resource: 'articles',
156
- type: {} as Article,
157
- shadows: { sortableFields: { title: { type: 'string' } } },
158
- },
159
- },
160
- };
162
+ // 1. Define your data types
163
+ interface Article {
164
+ id: string;
165
+ title: string;
166
+ content: string;
167
+ createdAt: string;
168
+ updatedAt: string;
169
+ }
161
170
 
162
171
  // 2. Deploy with Terraform (see dynamodb-client-example)
163
172
  // terraform apply
164
173
 
165
174
  // 3. Use the client
166
175
  const client = new DynamoClient(FUNCTION_URL);
167
- const articles = client.db().collection('articles');
176
+ const articles = client.db().collection<Article>('articles');
168
177
 
169
- await articles.insertOne({ title: 'Hello DynamoDB' });
178
+ await articles.insertOne({ title: 'Hello DynamoDB', content: 'Getting started...' });
170
179
  const article = await articles.findOne({ title: 'Hello DynamoDB' });
171
180
  ```
172
181
 
@@ -295,16 +304,19 @@ const record = {
295
304
  };
296
305
 
297
306
  // Automatically generates shadow records:
298
- // - id#01HQXYZ123#id#01HQXYZ123
299
307
  // - title#Article#id#01HQXYZ123
300
308
  // - viewCount#1000000000000123#id#01HQXYZ123
301
309
  // - published#1#id#01HQXYZ123
302
310
  // - tags#["aws","tech"]#id#01HQXYZ123
303
311
  // - metadata#{"category":"tech"}#id#01HQXYZ123
312
+ //
313
+ // Note: 'id' field does NOT generate a shadow record
314
+ // Main record (SK = id#01HQXYZ123) is used for id-based sorting
304
315
  ```
305
316
 
306
317
  ### Exclusion Rules
307
318
 
319
+ - **`id` field is excluded** - Main record (`SK = id#{ULID}`) is used for id-based sorting
308
320
  - Fields starting with `__` are excluded (internal metadata)
309
321
  - `null` or `undefined` values are excluded
310
322
 
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 認証ハンドラーは外部から注入されます。
5
5
  */
6
- import type { DeleteResult, Filter, FindOptions, InsertManyResult, InsertOneResult, UpdateOperators, UpdateResult } from '../types.js';
6
+ import type { DeleteResult, Filter, FindOptions, InsertManyResult, InsertOneResult, UpdateOperators, UpdateResult } from '../shared/index.js';
7
7
  import type { ClientOptions } from './DynamoClient.js';
8
8
  import { FindCursor } from './FindCursor.js';
9
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,GAAG,OAAO,IAAI,CACtD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,YAAY,KACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,YAAY,GAAG,OAAO;IAEnF,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;gBALd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC;IAGzD,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,cAAc,IAAI,YAAY,GAAG,SAAS;IAI1C;;OAEG;YACW,OAAO;IAuDrB,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC;IAatF,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAUzD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU3C,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9E,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBrF,SAAS,CACb,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC;IAelB,UAAU,CACd,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC;IAkBlB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IASzD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;CAUjE"}
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/client/Collection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,GAAG,OAAO,IAAI,CACtD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,YAAY,KACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU,CAAC,OAAO,SAAS,UAAU,GAAG,UAAU,EAAE,YAAY,GAAG,OAAO;IAEnF,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,cAAc;gBALd,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,YAAY,GAAG,SAAS,EACrC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,cAAc,EAAE,iBAAiB,CAAC,YAAY,CAAC;IAGzD,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIrB,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,cAAc,IAAI,YAAY,GAAG,SAAS;IAI1C;;OAEG;YACW,OAAO;IAuDrB,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC;IAatF,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAUzD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU3C,SAAS,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAS9E,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBrF,SAAS,CACb,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC;IAelB,UAAU,CACd,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAC/B,OAAO,CAAC,YAAY,CAAC;IAkBlB,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IASzD,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;CAUjE"}
@@ -1,4 +1,4 @@
1
- import type { Filter, FindOptions } from '../types.js';
1
+ import type { Filter, FindOptions } from '../shared/index.js';
2
2
  import type { AuthHeadersGetter } from './Collection.js';
3
3
  import type { ClientOptions } from './DynamoClient.js';
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"FindCursor.d.ts","sourceRoot":"","sources":["../../src/client/FindCursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAU,CACrB,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAC/F,YAAY,GAAG,OAAO;IAoBpB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC;IAzBzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAyE;IAE1F;;;;;;;;;;;OAWG;gBAEO,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAC/B,OAAO,GAAE,WAAgB,EACjB,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,WAAW,CAAC,EAAE,YAAY,YAAA,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,YAAA;IAK1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI;IAKzD;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;;OAKG;YACW,OAAO;IAsFrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CAWH"}
1
+ {"version":3,"file":"FindCursor.d.ts","sourceRoot":"","sources":["../../src/client/FindCursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAU,CACrB,OAAO,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAC/F,YAAY,GAAG,OAAO;IAoBpB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS,CAAC;IAClB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,cAAc,CAAC;IAzBzB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAC,CAAyE;IAE1F;;;;;;;;;;;OAWG;gBAEO,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAC/B,OAAO,GAAE,WAAgB,EACjB,SAAS,CAAC,EAAE,MAAM,YAAA,EAClB,WAAW,CAAC,EAAE,YAAY,YAAA,EAC1B,aAAa,CAAC,EAAE,aAAa,YAAA,EAC7B,cAAc,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC,YAAA;IAK1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,CAAC,GAAG,IAAI;IAKzD;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;;;;;;;;;;;;;;OAiBG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxB;;;;;OAKG;YACW,OAAO;IAsFrB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAOnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,eAAe,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CAWH"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,4 @@
1
- export { createDynamoDBClient } from './dynamodb.js';
2
- export type { DynamoDBClientConfig } from './dynamodb.js';
3
- export { ulid, ulidWithTime, decodeTime } from './ulid.js';
4
- export { createLogger } from './logger.js';
5
- export type { Logger, LoggerConfig, LogLevel, LogMetadata } from './logger.js';
6
- export { ErrorCode, AppError, AuthError, ConfigError, InvalidFilterError, InvalidTokenError, ItemNotFoundError, PartialFailureError, VersionConflictError, isAppError, getErrorClass, } from './errors.js';
7
- export type { FilterOperators, Filter, UpdateOperators, FindOptions, InsertOneResult, InsertManyResult, UpdateResult, DeleteResult, } from './types.js';
1
+ export * from './shared/index.js';
8
2
  export { Database, Collection } from './client/index.js';
9
3
  export { convertFilterToDynamo, type DynamoComparisonOperator, type DynamoCondition, type DynamoQuery, generateShadowRecords, type ShadowRecord, getShadowConfig, clearShadowConfigCache, type ShadowConfig, } from './server/index.js';
10
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/E,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,MAAM,EACN,eAAe,EACf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EACL,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,qBAAqB,EACrB,KAAK,YAAY,EACjB,eAAe,EACf,sBAAsB,EACtB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGzD,OAAO,EACL,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,qBAAqB,EACrB,KAAK,YAAY,EACjB,eAAe,EACf,sBAAsB,EACtB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { createDynamoDBClient } from './dynamodb.js';
2
- export { ulid, ulidWithTime, decodeTime } from './ulid.js';
3
- export { createLogger } from './logger.js';
4
- export { ErrorCode, AppError, AuthError, ConfigError, InvalidFilterError, InvalidTokenError, ItemNotFoundError, PartialFailureError, VersionConflictError, isAppError, getErrorClass, } from './errors.js';
1
+ // 共通モジュールを再エクスポート
2
+ export * from './shared/index.js';
3
+ // クライアントAPI
5
4
  export { Database, Collection } from './client/index.js';
5
+ // サーバーサイド機能
6
6
  export { convertFilterToDynamo, generateShadowRecords, getShadowConfig, clearShadowConfigCache, } from './server/index.js';
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EACL,SAAS,EACT,QAAQ,EACR,SAAS,EACT,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,aAAa,GACd,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EACL,qBAAqB,EAIrB,qBAAqB,EAErB,eAAe,EACf,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,mBAAmB,CAAC;AAElC,YAAY;AACZ,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzD,YAAY;AACZ,OAAO,EACL,qBAAqB,EAIrB,qBAAqB,EAErB,eAAe,EACf,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC"}