@exabugs/dynamodb-client 0.3.6 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGpG,YAAY,EACV,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjF,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACX,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,17 +1,18 @@
1
1
  /**
2
- * @exabugs/dynamodb-client/shadows - シャドー管理ライブラリ
2
+ * @exabugs/dynamodb-client/shadows - Shadow management library
3
3
  *
4
- * DynamoDB Single-Table設計における動的シャドーレコード管理を提供します。
4
+ * Provides dynamic shadow record management for DynamoDB Single-Table design.
5
5
  *
6
- * 主な機能:
7
- * - シャドーSK生成(string/number/datetime対応)
8
- * - シャドー差分計算(旧影と新影の比較)
9
- * - shadow.config.json読み込みと検証
6
+ * Main features:
7
+ * - Shadow SK generation (supports string/number/datetime/boolean/array/object)
8
+ * - Shadow difference calculation (comparing old and new shadows)
9
+ * - Configuration management utilities (for legacy compatibility)
10
10
  */
11
- // ジェネレーター関数のエクスポート
12
- export { escapeString, formatNumber, formatDatetime, formatBoolean, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
13
- // 差分計算関数のエクスポート
11
+ // Legacy types removed in v0.3.x - use environment variables for configuration
12
+ // Generator functions export
13
+ export { escapeString, formatNumber, formatDatetime, formatBoolean, formatArray, formatObject, formatFieldValue, generateShadowSK, generateMainRecordSK, } from './generator.js';
14
+ // Difference calculation functions export
14
15
  export { calculateShadowDiff, isDiffEmpty, mergeShadowDiffs } from './differ.js';
15
- // 設定管理関数のエクスポート
16
- export { loadShadowConfig, getResourceConfig, getAllShadowFields, isValidShadowField, getDefaultSort, getConfigPathFromEnv, } from './config.js';
16
+ // Note: Configuration management functions removed in v0.3.x
17
+ // Use environment variables for configuration instead
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAaH,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,gBAAgB;AAChB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,+EAA+E;AAE/E,6BAA6B;AAC7B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,0CAA0C;AAC1C,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,6DAA6D;AAC7D,sDAAsD"}
@@ -1,40 +1,20 @@
1
1
  /**
2
- * シャドー設定のフィールド定義
2
+ * Shadow field types supported by the automatic shadow generation system
3
3
  */
4
- export interface ShadowFieldConfig {
5
- type: 'string' | 'number' | 'datetime';
6
- }
7
- /**
8
- * リソースごとのシャドー設定
9
- */
10
- export interface ResourceShadowConfig {
11
- sortDefaults: {
12
- field: string;
13
- order: 'ASC' | 'DESC';
14
- };
15
- shadows: {
16
- [fieldName: string]: ShadowFieldConfig;
17
- };
18
- ttl?: {
19
- days: number;
20
- };
21
- }
4
+ export type ShadowFieldType = 'string' | 'number' | 'datetime' | 'boolean' | 'array' | 'object';
22
5
  /**
23
- * shadow.config.jsonの全体構造
6
+ * Shadow field configuration
24
7
  */
25
- export interface ShadowConfig {
26
- $schemaVersion: string;
27
- resources: {
28
- [resourceName: string]: ResourceShadowConfig;
29
- };
8
+ export interface ShadowFieldConfig {
9
+ type: ShadowFieldType;
30
10
  }
31
11
  /**
32
- * シャドー差分計算の結果
12
+ * Result of shadow difference calculation
33
13
  */
34
14
  export interface ShadowDiff {
35
- /** 削除すべきシャドーSKのリスト */
15
+ /** List of shadow SKs to delete */
36
16
  toDelete: string[];
37
- /** 追加すべきシャドーSKのリスト */
17
+ /** List of shadow SKs to add */
38
18
  toAdd: string[];
39
19
  }
40
20
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAAC;KACxC,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE;QACT,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB,CAAC;KAC9C,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sBAAsB;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,eAAe,CAAC;CACvB;AAKD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exabugs/dynamodb-client",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "DynamoDB Single-Table Client SDK with MongoDB-like API, Shadow Records, and Lambda implementation for serverless applications",
5
5
  "author": "exabugs",
6
6
  "license": "MIT",
@@ -108,14 +108,14 @@
108
108
  },
109
109
  "dependencies": {
110
110
  "@aws-crypto/sha256-js": "5.2.0",
111
- "@aws-sdk/client-dynamodb": "3.929.0",
112
- "@aws-sdk/credential-provider-node": "3.929.0",
113
- "@aws-sdk/lib-dynamodb": "3.929.0",
111
+ "@aws-sdk/client-dynamodb": "3.946.0",
112
+ "@aws-sdk/credential-provider-node": "3.946.0",
113
+ "@aws-sdk/lib-dynamodb": "3.946.0",
114
114
  "@smithy/protocol-http": "5.3.5",
115
115
  "@smithy/signature-v4": "5.3.5",
116
116
  "@smithy/util-utf8": "4.2.0",
117
117
  "aws-jwt-verify": "5.1.1",
118
- "ulid": "3.0.1"
118
+ "ulid": "3.0.2"
119
119
  },
120
120
  "devDependencies": {
121
121
  "@eslint/js": "^9.0.0",
@@ -125,7 +125,7 @@
125
125
  "@typescript-eslint/eslint-plugin": "^8.0.0",
126
126
  "@typescript-eslint/parser": "^8.0.0",
127
127
  "@vitest/coverage-v8": "^2.0.0",
128
- "esbuild": "^0.20.0",
128
+ "esbuild": "^0.27.1",
129
129
  "eslint": "^9.0.0",
130
130
  "globals": "^15.0.0",
131
131
  "prettier": "^3.0.0",
@@ -30,8 +30,8 @@ module "lambda_records" {
30
30
  # Cognito設定
31
31
  cognito_user_pool_id = module.cognito.user_pool_id
32
32
 
33
- # シャドウ設定(base64エンコード)
34
- shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
33
+ # シャドウ設定(v0.3.x以降は不要、レガシー互換性のため残存)
34
+ # shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
35
35
 
36
36
  # ログ設定
37
37
  log_retention_days = 7
@@ -56,8 +56,8 @@ module "lambda_records" {
56
56
  # Cognito設定
57
57
  cognito_user_pool_id = module.cognito.user_pool_id
58
58
 
59
- # シャドウ設定(base64エンコード)
60
- shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
59
+ # シャドウ設定(v0.3.x以降は不要、レガシー互換性のため残存)
60
+ # shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
61
61
  }
62
62
  ```
63
63
 
@@ -73,7 +73,7 @@ module "lambda_records" {
73
73
  | `dynamodb_table_name` | string | DynamoDBテーブル名 |
74
74
  | `dynamodb_table_arn` | string | DynamoDBテーブルARN |
75
75
  | `cognito_user_pool_id` | string | Cognito User Pool ID(認証用) |
76
- | `shadow_config` | string | シャドウ設定(base64エンコード) |
76
+ | `shadow_config` | string | シャドウ設定(v0.3.x以降は不要) |
77
77
 
78
78
  ### オプション変数
79
79
 
@@ -93,7 +93,7 @@ module "lambda_records" {
93
93
  | `function_url` | Lambda Function URL |
94
94
  | `log_group_name` | CloudWatch Logsロググループ名 |
95
95
  | `role_arn` | Lambda実行ロールARN |
96
- | `shadow_config` | シャドウ設定(base64エンコード) |
96
+ | `shadow_config` | シャドウ設定(v0.3.x以降は不要) |
97
97
 
98
98
  ## 要件
99
99
 
@@ -133,7 +133,8 @@ module "lambda_records" {
133
133
  Terraformでは、シャドウ設定をbase64エンコードして渡します:
134
134
 
135
135
  ```hcl
136
- shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
136
+ # v0.3.x以降は不要(環境変数で自動設定)
137
+ # shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
137
138
  ```
138
139
 
139
140
  ## IAMポリシー
@@ -1,54 +0,0 @@
1
- import type { ResourceShadowConfig, ShadowConfig, ShadowFieldConfig } from './types.js';
2
- /**
3
- * shadow.config.jsonファイルから読み込む
4
- *
5
- * @param configPath - 設定ファイルのパス(デフォルト: './shadow.config.json')
6
- * @returns パースされたシャドー設定
7
- * @throws 設定ファイルが存在しない、または不正な形式の場合
8
- */
9
- export declare function loadShadowConfig(configPath?: string): Promise<ShadowConfig>;
10
- /**
11
- * 特定のリソースのシャドー設定を取得する
12
- *
13
- * @param config - シャドー設定全体
14
- * @param resourceName - リソース名(例: 'articles', 'tasks')
15
- * @returns リソースのシャドー設定
16
- * @throws リソースが設定に存在しない場合
17
- */
18
- export declare function getResourceConfig(config: ShadowConfig, resourceName: string): ResourceShadowConfig;
19
- /**
20
- * リソースの全シャドーフィールドを取得する
21
- *
22
- * @param config - シャドー設定全体
23
- * @param resourceName - リソース名
24
- * @returns 全シャドーフィールドの設定
25
- */
26
- export declare function getAllShadowFields(config: ShadowConfig, resourceName: string): Record<string, ShadowFieldConfig>;
27
- /**
28
- * 指定されたフィールドが有効なシャドーフィールドかどうかを検証する
29
- *
30
- * @param config - シャドー設定全体
31
- * @param resourceName - リソース名
32
- * @param fieldName - 検証するフィールド名
33
- * @returns フィールドが有効な場合true
34
- */
35
- export declare function isValidShadowField(config: ShadowConfig, resourceName: string, fieldName: string): boolean;
36
- /**
37
- * リソースのデフォルトソート設定を取得する
38
- *
39
- * @param config - シャドー設定全体
40
- * @param resourceName - リソース名
41
- * @returns デフォルトソート設定
42
- */
43
- export declare function getDefaultSort(config: ShadowConfig, resourceName: string): {
44
- field: string;
45
- order: 'ASC' | 'DESC';
46
- };
47
- /**
48
- * 設定ファイルから環境変数経由でパスを取得する
49
- *
50
- * @param envVar - 環境変数名(デフォルト: 'SHADOW_CONFIG_PATH')
51
- * @returns 設定ファイルのパス
52
- */
53
- export declare function getConfigPathFromEnv(envVar?: string): string;
54
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shadows/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,UAAU,GAAE,MAA+B,GAC1C,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,GACnB,oBAAoB,CAQtB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAGnC;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAOT;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAG1C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,MAA6B,GAAG,MAAM,CAElF"}
@@ -1,95 +0,0 @@
1
- import { readFile } from 'node:fs/promises';
2
- import { resolve } from 'node:path';
3
- /**
4
- * shadow.config.jsonファイルから読み込む
5
- *
6
- * @param configPath - 設定ファイルのパス(デフォルト: './shadow.config.json')
7
- * @returns パースされたシャドー設定
8
- * @throws 設定ファイルが存在しない、または不正な形式の場合
9
- */
10
- export async function loadShadowConfig(configPath = './shadow.config.json') {
11
- try {
12
- // ファイルシステムから読み込む
13
- const absolutePath = resolve(configPath);
14
- const content = await readFile(absolutePath, 'utf-8');
15
- const config = JSON.parse(content);
16
- // 基本的なバリデーション
17
- if (!config.$schemaVersion) {
18
- throw new Error('Missing $schemaVersion in shadow.config.json');
19
- }
20
- if (!config.resources || typeof config.resources !== 'object') {
21
- throw new Error('Missing or invalid resources in shadow.config.json');
22
- }
23
- return config;
24
- }
25
- catch (error) {
26
- if (error instanceof Error) {
27
- throw new Error(`Failed to load shadow config: ${error.message}`);
28
- }
29
- throw error;
30
- }
31
- }
32
- /**
33
- * 特定のリソースのシャドー設定を取得する
34
- *
35
- * @param config - シャドー設定全体
36
- * @param resourceName - リソース名(例: 'articles', 'tasks')
37
- * @returns リソースのシャドー設定
38
- * @throws リソースが設定に存在しない場合
39
- */
40
- export function getResourceConfig(config, resourceName) {
41
- const resourceConfig = config.resources[resourceName];
42
- if (!resourceConfig) {
43
- throw new Error(`Resource '${resourceName}' not found in shadow config`);
44
- }
45
- return resourceConfig;
46
- }
47
- /**
48
- * リソースの全シャドーフィールドを取得する
49
- *
50
- * @param config - シャドー設定全体
51
- * @param resourceName - リソース名
52
- * @returns 全シャドーフィールドの設定
53
- */
54
- export function getAllShadowFields(config, resourceName) {
55
- const resourceConfig = getResourceConfig(config, resourceName);
56
- return resourceConfig.shadows;
57
- }
58
- /**
59
- * 指定されたフィールドが有効なシャドーフィールドかどうかを検証する
60
- *
61
- * @param config - シャドー設定全体
62
- * @param resourceName - リソース名
63
- * @param fieldName - 検証するフィールド名
64
- * @returns フィールドが有効な場合true
65
- */
66
- export function isValidShadowField(config, resourceName, fieldName) {
67
- try {
68
- const allFields = getAllShadowFields(config, resourceName);
69
- return fieldName in allFields;
70
- }
71
- catch {
72
- return false;
73
- }
74
- }
75
- /**
76
- * リソースのデフォルトソート設定を取得する
77
- *
78
- * @param config - シャドー設定全体
79
- * @param resourceName - リソース名
80
- * @returns デフォルトソート設定
81
- */
82
- export function getDefaultSort(config, resourceName) {
83
- const resourceConfig = getResourceConfig(config, resourceName);
84
- return resourceConfig.sortDefaults;
85
- }
86
- /**
87
- * 設定ファイルから環境変数経由でパスを取得する
88
- *
89
- * @param envVar - 環境変数名(デフォルト: 'SHADOW_CONFIG_PATH')
90
- * @returns 設定ファイルのパス
91
- */
92
- export function getConfigPathFromEnv(envVar = 'SHADOW_CONFIG_PATH') {
93
- return process.env[envVar] || './shadow.config.json';
94
- }
95
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/shadows/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,aAAqB,sBAAsB;IAE3C,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;QAEnD,cAAc;QACd,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAoB,EACpB,YAAoB;IAEpB,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAEtD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,8BAA8B,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,YAAoB;IAEpB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/D,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAoB,EACpB,YAAoB,EACpB,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC3D,OAAO,SAAS,IAAI,SAAS,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAoB,EACpB,YAAoB;IAEpB,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/D,OAAO,cAAc,CAAC,YAAY,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB,oBAAoB;IACxE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,sBAAsB,CAAC;AACvD,CAAC"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Shadow Config スキーマ定義
3
- *
4
- * TypeScript でリソーススキーマを定義し、shadow.config.json を自動生成するための型定義。
5
- * これにより、型安全性を保ちながら Shadow Config を管理できる。
6
- */
7
- /**
8
- * シャドーフィールドの型
9
- */
10
- export type ShadowFieldType = 'string' | 'number' | 'datetime' | 'boolean';
11
- /**
12
- * シャドーフィールドの定義
13
- */
14
- export interface ShadowFieldDefinition {
15
- type: ShadowFieldType;
16
- }
17
- /**
18
- * リソーススキーマの定義
19
- *
20
- * @template T - リソースの型(例: Article, Task など)
21
- *
22
- * @exabugs/dynamodb-client v0.3.x では、シャドウ設定は環境変数ベースになりました。
23
- * shadows プロパティは後方互換性のために残されていますが、省略可能です。
24
- */
25
- export interface ResourceSchema<T = any> {
26
- /** リソース名(複数形、例: "articles", "tasks") */
27
- resource: string;
28
- /** リソースの型定義(型チェック用) */
29
- type: T;
30
- /** シャドー設定(省略可、v0.3.x では不要) */
31
- shadows?: {
32
- /** ソート可能なフィールドの定義 */
33
- sortableFields: Record<string, ShadowFieldDefinition>;
34
- };
35
- /** デフォルトソート設定(省略時は自動決定) */
36
- sortDefaults?: {
37
- field: string;
38
- order: 'ASC' | 'DESC';
39
- };
40
- /** TTL 設定(省略可) */
41
- ttl?: {
42
- days: number;
43
- };
44
- }
45
- /**
46
- * スキーマレジストリの設定
47
- *
48
- * アプリケーション全体のリソーススキーマを定義する。
49
- * この設定から shadow.config.json を自動生成する。
50
- */
51
- export interface SchemaRegistryConfig {
52
- /** データベース設定 */
53
- database: {
54
- /** タイムスタンプフィールド名 */
55
- timestamps: {
56
- createdAt: string;
57
- updatedAt: string;
58
- };
59
- };
60
- /** リソーススキーマの定義 */
61
- resources: Record<string, ResourceSchema>;
62
- }
63
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/shadows/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,GAAG;IACrC,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IAEjB,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC;IAER,8BAA8B;IAC9B,OAAO,CAAC,EAAE;QACR,qBAAqB;QACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;KACvD,CAAC;IAEF,2BAA2B;IAC3B,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IAEF,kBAAkB;IAClB,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe;IACf,QAAQ,EAAE;QACR,oBAAoB;QACpB,UAAU,EAAE;YACV,SAAS,EAAE,MAAM,CAAC;YAClB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IAEF,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Shadow Config スキーマ定義
3
- *
4
- * TypeScript でリソーススキーマを定義し、shadow.config.json を自動生成するための型定義。
5
- * これにより、型安全性を保ちながら Shadow Config を管理できる。
6
- */
7
- export {};
8
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/shadows/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}