@exabugs/dynamodb-client 0.2.2 → 0.3.1

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 (64) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +92 -28
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/server/handler.cjs +137 -178
  8. package/dist/server/handler.cjs.map +4 -4
  9. package/dist/server/handler.d.ts.map +1 -1
  10. package/dist/server/handler.js +2 -15
  11. package/dist/server/handler.js.map +1 -1
  12. package/dist/server/operations/find.d.ts.map +1 -1
  13. package/dist/server/operations/find.js +5 -12
  14. package/dist/server/operations/find.js.map +1 -1
  15. package/dist/server/operations/findManyReference.d.ts.map +1 -1
  16. package/dist/server/operations/findManyReference.js +3 -10
  17. package/dist/server/operations/findManyReference.js.map +1 -1
  18. package/dist/server/operations/insertMany.d.ts.map +1 -1
  19. package/dist/server/operations/insertMany.js +3 -8
  20. package/dist/server/operations/insertMany.js.map +1 -1
  21. package/dist/server/operations/insertOne.d.ts.map +1 -1
  22. package/dist/server/operations/insertOne.js +3 -8
  23. package/dist/server/operations/insertOne.js.map +1 -1
  24. package/dist/server/operations/updateMany.d.ts.map +1 -1
  25. package/dist/server/operations/updateMany.js +3 -4
  26. package/dist/server/operations/updateMany.js.map +1 -1
  27. package/dist/server/operations/updateOne.d.ts.map +1 -1
  28. package/dist/server/operations/updateOne.js +3 -4
  29. package/dist/server/operations/updateOne.js.map +1 -1
  30. package/dist/server/shadow/config.d.ts +18 -112
  31. package/dist/server/shadow/config.d.ts.map +1 -1
  32. package/dist/server/shadow/config.js +33 -131
  33. package/dist/server/shadow/config.js.map +1 -1
  34. package/dist/server/shadow/generator.d.ts +92 -43
  35. package/dist/server/shadow/generator.d.ts.map +1 -1
  36. package/dist/server/shadow/generator.js +175 -56
  37. package/dist/server/shadow/generator.js.map +1 -1
  38. package/dist/server/shadow/index.d.ts +4 -3
  39. package/dist/server/shadow/index.d.ts.map +1 -1
  40. package/dist/server/shadow/index.js +4 -2
  41. package/dist/server/shadow/index.js.map +1 -1
  42. package/dist/server/shadow/typeInference.d.ts +61 -0
  43. package/dist/server/shadow/typeInference.d.ts.map +1 -0
  44. package/dist/server/shadow/typeInference.js +94 -0
  45. package/dist/server/shadow/typeInference.js.map +1 -0
  46. package/dist/server/shadow/types.d.ts +1 -1
  47. package/dist/server/shadow/types.d.ts.map +1 -1
  48. package/dist/server/utils/timestamps.d.ts.map +1 -1
  49. package/dist/server/utils/timestamps.js +3 -26
  50. package/dist/server/utils/timestamps.js.map +1 -1
  51. package/dist/server/utils/ttl.d.ts.map +1 -1
  52. package/dist/server/utils/ttl.js +11 -9
  53. package/dist/server/utils/ttl.js.map +1 -1
  54. package/dist/server/utils/validation.d.ts +14 -8
  55. package/dist/server/utils/validation.d.ts.map +1 -1
  56. package/dist/server/utils/validation.js +19 -26
  57. package/dist/server/utils/validation.js.map +1 -1
  58. package/package.json +1 -1
  59. package/terraform/README.md +3 -3
  60. package/terraform/main.tf +1 -1
  61. package/dist/scripts/generate-shadow-config.d.ts +0 -3
  62. package/dist/scripts/generate-shadow-config.d.ts.map +0 -1
  63. package/dist/scripts/generate-shadow-config.js +0 -159
  64. package/dist/scripts/generate-shadow-config.js.map +0 -1
@@ -1,14 +1,18 @@
1
- import type { ShadowConfig } from '../shadow/index.js';
1
+ /**
2
+ * 入力検証ユーティリティ
3
+ */
4
+ import type { ShadowConfig } from '../shadow/config.js';
2
5
  import type { FindManyReferenceParams, FindParams } from '../types.js';
3
6
  /**
4
7
  * getList/getManyReferenceのソートフィールドを検証する
5
8
  *
6
- * @param config - シャドー設定
7
- * @param resource - リソース名
8
- * @param sort - ソート条件
9
- * @throws {InvalidFilterError} ソートフィールドが無効な場合
9
+ * 新しい実装: すべてのフィールドが自動的にシャドウ化されるため、検証は不要
10
+ *
11
+ * @param _config - シャドー設定(未使用)
12
+ * @param _resource - リソース名(未使用)
13
+ * @param _sort - ソート条件(未使用)
10
14
  */
11
- export declare function validateSortField(config: ShadowConfig, resource: string, sort?: {
15
+ export declare function validateSortField(_config: ShadowConfig, _resource: string, _sort?: {
12
16
  field: string;
13
17
  order: 'ASC' | 'DESC';
14
18
  }): void;
@@ -25,12 +29,14 @@ export declare function normalizePagination(pagination?: FindParams['pagination'
25
29
  /**
26
30
  * ソート条件を正規化する(デフォルト値を適用)
27
31
  *
32
+ * 新しい実装: デフォルトソートはupdatedAtフィールド(降順)
33
+ *
28
34
  * @param config - シャドー設定
29
- * @param resource - リソース名
35
+ * @param _resource - リソース名(未使用)
30
36
  * @param sort - ソート条件
31
37
  * @returns 正規化されたソート条件
32
38
  */
33
- export declare function normalizeSort(config: ShadowConfig, resource: string, sort?: {
39
+ export declare function normalizeSort(config: ShadowConfig, _resource: string, sort?: {
34
40
  field: string;
35
41
  order: 'ASC' | 'DESC';
36
42
  }): {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/server/utils/validation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC9C,IAAI,CAgBN;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,uBAAuB,CAAC,YAAY,CAAC,GAC5E;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAKzC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC9C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAO1C"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/server/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC/C,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,uBAAuB,CAAC,YAAY,CAAC,GAC5E;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAKzC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,GAC9C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAU1C"}
@@ -1,29 +1,17 @@
1
- /**
2
- * 入力検証ユーティリティ
3
- */
4
- import { InvalidFilterError } from '../../index.js';
5
- import { getDefaultSort, isValidShadowField } from '../shadow/index.js';
6
1
  /**
7
2
  * getList/getManyReferenceのソートフィールドを検証する
8
3
  *
9
- * @param config - シャドー設定
10
- * @param resource - リソース名
11
- * @param sort - ソート条件
12
- * @throws {InvalidFilterError} ソートフィールドが無効な場合
4
+ * 新しい実装: すべてのフィールドが自動的にシャドウ化されるため、検証は不要
5
+ *
6
+ * @param _config - シャドー設定(未使用)
7
+ * @param _resource - リソース名(未使用)
8
+ * @param _sort - ソート条件(未使用)
13
9
  */
14
- export function validateSortField(config, resource, sort) {
15
- if (!sort) {
16
- return;
17
- }
18
- const { field } = sort;
19
- // idフィールドは常に有効(本体レコードとして存在)
20
- if (field === 'id') {
21
- return;
22
- }
23
- // シャドーフィールドとして有効かチェック
24
- if (!isValidShadowField(config, resource, field)) {
25
- throw new InvalidFilterError(`Invalid sort field: ${field}`, { field, resource });
26
- }
10
+ export function validateSortField(_config, _resource, _sort) {
11
+ // 新しい実装では、すべてのフィールドが自動的にシャドウ化されるため、
12
+ // ソートフィールドの検証は不要
13
+ // レコードにフィールドが存在しない場合は、クエリ結果に含まれないだけ
14
+ return;
27
15
  }
28
16
  /**
29
17
  * ページネーションパラメータを正規化する
@@ -39,16 +27,21 @@ export function normalizePagination(pagination) {
39
27
  /**
40
28
  * ソート条件を正規化する(デフォルト値を適用)
41
29
  *
30
+ * 新しい実装: デフォルトソートはupdatedAtフィールド(降順)
31
+ *
42
32
  * @param config - シャドー設定
43
- * @param resource - リソース名
33
+ * @param _resource - リソース名(未使用)
44
34
  * @param sort - ソート条件
45
35
  * @returns 正規化されたソート条件
46
36
  */
47
- export function normalizeSort(config, resource, sort) {
37
+ export function normalizeSort(config, _resource, sort) {
48
38
  if (sort) {
49
39
  return sort;
50
40
  }
51
- // デフォルトソートを取得
52
- return getDefaultSort(config, resource);
41
+ // デフォルトソート: updatedAtフィールド(降順)
42
+ return {
43
+ field: config.updatedAtField,
44
+ order: 'DESC',
45
+ };
53
46
  }
54
47
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/server/utils/validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxE;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAoB,EACpB,QAAgB,EAChB,IAA+C;IAE/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,4BAA4B;IAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA6E;IAE7E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ;IACjE,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,CAAC;IAExC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,QAAgB,EAChB,IAA+C;IAE/C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;IACd,OAAO,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/server/utils/validation.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAqB,EACrB,SAAiB,EACjB,KAAgD;IAEhD,oCAAoC;IACpC,iBAAiB;IACjB,oCAAoC;IACpC,OAAO;AACT,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA6E;IAE7E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ;IACjE,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,CAAC;IAExC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAoB,EACpB,SAAiB,EACjB,IAA+C;IAE/C,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAA+B;IAC/B,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,cAAc;QAC5B,KAAK,EAAE,MAAM;KACd,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exabugs/dynamodb-client",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
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",
@@ -31,7 +31,7 @@ module "lambda_records" {
31
31
  cognito_user_pool_id = module.cognito.user_pool_id
32
32
 
33
33
  # シャドウ設定(base64エンコード)
34
- shadow_config = base64encode(file("${path.root}/../config/shadow.config.json"))
34
+ shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
35
35
 
36
36
  # ログ設定
37
37
  log_retention_days = 7
@@ -57,7 +57,7 @@ module "lambda_records" {
57
57
  cognito_user_pool_id = module.cognito.user_pool_id
58
58
 
59
59
  # シャドウ設定(base64エンコード)
60
- shadow_config = base64encode(file("${path.root}/../config/shadow.config.json"))
60
+ shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
61
61
  }
62
62
  ```
63
63
 
@@ -133,7 +133,7 @@ module "lambda_records" {
133
133
  Terraformでは、シャドウ設定をbase64エンコードして渡します:
134
134
 
135
135
  ```hcl
136
- shadow_config = base64encode(file("${path.root}/../config/shadow.config.json"))
136
+ shadow_config = base64encode(file("${path.root}/../packages/api-types/shadow.config.json"))
137
137
  ```
138
138
 
139
139
  ## IAMポリシー
package/terraform/main.tf CHANGED
@@ -90,7 +90,7 @@ resource "aws_lambda_function" "records" {
90
90
 
91
91
  # ビルド成果物
92
92
  filename = data.archive_file.lambda_records.output_path
93
- source_code_hash = "${data.archive_file.lambda_records.output_base64sha256}-${base64sha256(var.shadow_config)}"
93
+ source_code_hash = data.archive_file.lambda_records.output_base64sha256
94
94
 
95
95
  # ランタイム設定
96
96
  runtime = "nodejs22.x"
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=generate-shadow-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-shadow-config.d.ts","sourceRoot":"","sources":["../../src/scripts/generate-shadow-config.ts"],"names":[],"mappings":""}
@@ -1,159 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Shadow Config 自動生成スクリプト
4
- *
5
- * TypeScript スキーマファイルから shadow.config.json を自動生成する。
6
- * TypeScript のスキーマ定義が唯一の情報源(Single Source of Truth)となり、
7
- * 設定ファイルとの不整合を防ぐ。
8
- *
9
- * 使用方法:
10
- * npx generate-shadow-config <schema-file> -o <output-file>
11
- *
12
- * 例:
13
- * npx generate-shadow-config schema.ts -o shadow.config.json
14
- */
15
- import { writeFileSync } from 'fs';
16
- import { resolve } from 'path';
17
- /**
18
- * コマンドライン引数をパース
19
- */
20
- function parseArgs() {
21
- const args = process.argv.slice(2);
22
- if (args.length === 0 || args.includes('-h') || args.includes('--help')) {
23
- console.log(`
24
- Usage: generate-shadow-config <schema-file> [options]
25
-
26
- Arguments:
27
- <schema-file> TypeScript schema file path
28
-
29
- Options:
30
- -o, --output Output file path (default: shadow.config.json)
31
- -h, --help Show this help message
32
-
33
- Example:
34
- generate-shadow-config schema.ts -o shadow.config.json
35
- `);
36
- process.exit(0);
37
- }
38
- const schemaFile = args[0];
39
- const outputIndex = args.findIndex((arg) => arg === '-o' || arg === '--output');
40
- const outputFile = outputIndex !== -1 ? args[outputIndex + 1] : 'shadow.config.json';
41
- if (!schemaFile) {
42
- console.error('❌ Error: Schema file is required');
43
- process.exit(1);
44
- }
45
- return { schemaFile, outputFile };
46
- }
47
- /**
48
- * TypeScript スキーマファイルから SchemaRegistryConfig を読み込む
49
- */
50
- async function loadSchemaFile(schemaFile) {
51
- const absolutePath = resolve(process.cwd(), schemaFile);
52
- console.log(`📖 Loading schema from: ${absolutePath}`);
53
- try {
54
- // 動的インポートでスキーマファイルを読み込む
55
- const module = await import(absolutePath);
56
- // エクスポートされた SchemaRegistryConfig を探す
57
- const schemaConfig = module.default ||
58
- module.SchemaRegistryConfig ||
59
- module.MySchema ||
60
- module.schema ||
61
- module.config;
62
- if (!schemaConfig) {
63
- throw new Error('SchemaRegistryConfig not found. Please export as default or named export (SchemaRegistryConfig, MySchema, schema, config)');
64
- }
65
- // 基本的な検証
66
- if (!schemaConfig.database || !schemaConfig.resources) {
67
- throw new Error('Invalid schema: missing database or resources');
68
- }
69
- return schemaConfig;
70
- }
71
- catch (error) {
72
- if (error instanceof Error) {
73
- console.error(`❌ Failed to load schema file: ${error.message}`);
74
- }
75
- throw error;
76
- }
77
- }
78
- /**
79
- * SchemaRegistryConfig から shadow.config.json を生成
80
- */
81
- function generateShadowConfig(schemaConfig, schemaFile) {
82
- console.log('🔄 Generating shadow.config.json...');
83
- // データベース設定の検証
84
- if (!schemaConfig.database.timestamps) {
85
- throw new Error('Database timestamps configuration is required');
86
- }
87
- // リソーススキーマの変換
88
- const resources = {};
89
- for (const [resourceName, schema] of Object.entries(schemaConfig.resources)) {
90
- // ソート可能フィールドを変換
91
- const shadows = {};
92
- for (const [fieldName, fieldDef] of Object.entries(schema.shadows.sortableFields)) {
93
- shadows[fieldName] = {
94
- type: fieldDef.type,
95
- };
96
- }
97
- // デフォルトソート設定を決定
98
- // schema.sortDefaults が指定されていればそれを使用
99
- // なければ updatedAt が存在する場合は updatedAt DESC、なければ最初のフィールド ASC
100
- let sortDefaults;
101
- if (schema.sortDefaults) {
102
- sortDefaults = schema.sortDefaults;
103
- }
104
- else {
105
- const sortableFieldNames = Object.keys(shadows);
106
- const defaultSortField = 'updatedAt' in shadows ? 'updatedAt' : sortableFieldNames[0];
107
- const defaultSortOrder = 'updatedAt' in shadows ? 'DESC' : 'ASC';
108
- sortDefaults = {
109
- field: defaultSortField,
110
- order: defaultSortOrder,
111
- };
112
- }
113
- resources[resourceName] = {
114
- shadows,
115
- sortDefaults,
116
- ...(schema.ttl && { ttl: schema.ttl }),
117
- };
118
- }
119
- // 設定オブジェクトの構築
120
- const config = {
121
- $schemaVersion: '2.0',
122
- $generatedFrom: schemaFile,
123
- database: {
124
- timestamps: schemaConfig.database.timestamps,
125
- },
126
- resources,
127
- };
128
- return config;
129
- }
130
- /**
131
- * メイン処理
132
- */
133
- async function main() {
134
- try {
135
- // コマンドライン引数をパース
136
- const { schemaFile, outputFile } = parseArgs();
137
- // スキーマファイルを読み込む
138
- const schemaConfig = await loadSchemaFile(schemaFile);
139
- // shadow.config.json を生成
140
- const config = generateShadowConfig(schemaConfig, schemaFile);
141
- // ファイルに出力
142
- const outputPath = resolve(process.cwd(), outputFile);
143
- const output = JSON.stringify(config, null, 2);
144
- writeFileSync(outputPath, output, 'utf-8');
145
- console.log(`✅ Generated shadow.config.json at ${outputPath}`);
146
- console.log(`📊 Resources: ${Object.keys(config.resources).join(', ')}`);
147
- process.exit(0);
148
- }
149
- catch (error) {
150
- console.error('❌ Failed to generate shadow.config.json:', error);
151
- if (error instanceof Error) {
152
- console.error(error.stack);
153
- }
154
- process.exit(1);
155
- }
156
- }
157
- // スクリプト実行
158
- main();
159
- //# sourceMappingURL=generate-shadow-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-shadow-config.js","sourceRoot":"","sources":["../../src/scripts/generate-shadow-config.ts"],"names":[],"mappings":"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"}