@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.
- package/CHANGELOG.md +22 -0
- package/README.md +35 -23
- package/dist/server/handler.cjs +7536 -7401
- package/dist/server/handler.cjs.map +4 -4
- package/dist/server/shadow/config.d.ts +13 -13
- package/dist/server/shadow/config.d.ts.map +1 -1
- package/dist/server/shadow/config.js +10 -10
- package/dist/server/shadow/index.d.ts +2 -1
- package/dist/server/shadow/index.d.ts.map +1 -1
- package/dist/server/shadow/index.js.map +1 -1
- package/dist/server/shadow/types.d.ts +0 -24
- package/dist/server/shadow/types.d.ts.map +1 -1
- package/dist/shadows/differ.d.ts +12 -12
- package/dist/shadows/differ.js +15 -15
- package/dist/shadows/differ.js.map +1 -1
- package/dist/shadows/generator.d.ts +53 -31
- package/dist/shadows/generator.d.ts.map +1 -1
- package/dist/shadows/generator.js +79 -35
- package/dist/shadows/generator.js.map +1 -1
- package/dist/shadows/index.d.ts +8 -10
- package/dist/shadows/index.d.ts.map +1 -1
- package/dist/shadows/index.js +12 -11
- package/dist/shadows/index.js.map +1 -1
- package/dist/shadows/types.d.ts +8 -28
- package/dist/shadows/types.d.ts.map +1 -1
- package/package.json +6 -6
- package/terraform/README.md +8 -7
- package/dist/shadows/config.d.ts +0 -54
- package/dist/shadows/config.d.ts.map +0 -1
- package/dist/shadows/config.js +0 -95
- package/dist/shadows/config.js.map +0 -1
- package/dist/shadows/schema.d.ts +0 -63
- package/dist/shadows/schema.d.ts.map +0 -1
- package/dist/shadows/schema.js +0 -8
- package/dist/shadows/schema.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,
|
|
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"}
|
package/dist/shadows/index.js
CHANGED
|
@@ -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
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
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"}
|
package/dist/shadows/types.d.ts
CHANGED
|
@@ -1,40 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Shadow field types supported by the automatic shadow generation system
|
|
3
3
|
*/
|
|
4
|
-
export
|
|
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
|
-
*
|
|
6
|
+
* Shadow field configuration
|
|
24
7
|
*/
|
|
25
|
-
export interface
|
|
26
|
-
|
|
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
|
-
/**
|
|
15
|
+
/** List of shadow SKs to delete */
|
|
36
16
|
toDelete: string[];
|
|
37
|
-
/**
|
|
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,
|
|
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.
|
|
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.
|
|
112
|
-
"@aws-sdk/credential-provider-node": "3.
|
|
113
|
-
"@aws-sdk/lib-dynamodb": "3.
|
|
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.
|
|
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.
|
|
128
|
+
"esbuild": "^0.27.1",
|
|
129
129
|
"eslint": "^9.0.0",
|
|
130
130
|
"globals": "^15.0.0",
|
|
131
131
|
"prettier": "^3.0.0",
|
package/terraform/README.md
CHANGED
|
@@ -30,8 +30,8 @@ module "lambda_records" {
|
|
|
30
30
|
# Cognito設定
|
|
31
31
|
cognito_user_pool_id = module.cognito.user_pool_id
|
|
32
32
|
|
|
33
|
-
# シャドウ設定(
|
|
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
|
-
# シャドウ設定(
|
|
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 | シャドウ設定(
|
|
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` | シャドウ設定(
|
|
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
|
-
|
|
136
|
+
# v0.3.x以降は不要(環境変数で自動設定)
|
|
137
|
+
# shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
|
|
137
138
|
```
|
|
138
139
|
|
|
139
140
|
## IAMポリシー
|
package/dist/shadows/config.d.ts
DELETED
|
@@ -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"}
|
package/dist/shadows/config.js
DELETED
|
@@ -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"}
|
package/dist/shadows/schema.d.ts
DELETED
|
@@ -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"}
|
package/dist/shadows/schema.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/shadows/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|