@exabugs/dynamodb-client 1.18.0 → 1.20.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 (113) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +1 -1
  3. package/bin/dynamodb-system-change.js +6 -0
  4. package/dist/integrations/react-admin/components/Alerts/AlertsList.d.ts +18 -0
  5. package/dist/integrations/react-admin/components/Alerts/AlertsList.d.ts.map +1 -0
  6. package/dist/integrations/react-admin/components/Alerts/AlertsList.js +34 -0
  7. package/dist/integrations/react-admin/components/Alerts/AlertsList.js.map +1 -0
  8. package/dist/integrations/react-admin/components/Alerts/AlertsShow.d.ts +10 -0
  9. package/dist/integrations/react-admin/components/Alerts/AlertsShow.d.ts.map +1 -0
  10. package/dist/integrations/react-admin/components/Alerts/AlertsShow.js +24 -0
  11. package/dist/integrations/react-admin/components/Alerts/AlertsShow.js.map +1 -0
  12. package/dist/integrations/react-admin/components/Alerts/alertsResource.d.ts +18 -0
  13. package/dist/integrations/react-admin/components/Alerts/alertsResource.d.ts.map +1 -0
  14. package/dist/integrations/react-admin/components/Alerts/alertsResource.js +19 -0
  15. package/dist/integrations/react-admin/components/Alerts/alertsResource.js.map +1 -0
  16. package/dist/integrations/react-admin/components/Alerts/alertsView.d.ts +51 -0
  17. package/dist/integrations/react-admin/components/Alerts/alertsView.d.ts.map +1 -0
  18. package/dist/integrations/react-admin/components/Alerts/alertsView.js +35 -0
  19. package/dist/integrations/react-admin/components/Alerts/alertsView.js.map +1 -0
  20. package/dist/integrations/react-admin/components/Alerts/index.d.ts +8 -0
  21. package/dist/integrations/react-admin/components/Alerts/index.d.ts.map +1 -0
  22. package/dist/integrations/react-admin/components/Alerts/index.js +5 -0
  23. package/dist/integrations/react-admin/components/Alerts/index.js.map +1 -0
  24. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts +16 -0
  25. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.d.ts.map +1 -1
  26. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js +27 -3
  27. package/dist/integrations/react-admin/components/CloudWatchLog/cloudWatchLogUrl.js.map +1 -1
  28. package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts +2 -2
  29. package/dist/integrations/react-admin/components/CloudWatchLog/index.d.ts.map +1 -1
  30. package/dist/integrations/react-admin/components/CloudWatchLog/index.js +1 -1
  31. package/dist/integrations/react-admin/components/CloudWatchLog/index.js.map +1 -1
  32. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesList.d.ts +29 -0
  33. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesList.d.ts.map +1 -0
  34. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesList.js +38 -0
  35. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesList.js.map +1 -0
  36. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesShow.d.ts +9 -0
  37. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesShow.d.ts.map +1 -0
  38. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesShow.js +50 -0
  39. package/dist/integrations/react-admin/components/SystemChanges/SystemChangesShow.js.map +1 -0
  40. package/dist/integrations/react-admin/components/SystemChanges/index.d.ts +8 -0
  41. package/dist/integrations/react-admin/components/SystemChanges/index.d.ts.map +1 -0
  42. package/dist/integrations/react-admin/components/SystemChanges/index.js +5 -0
  43. package/dist/integrations/react-admin/components/SystemChanges/index.js.map +1 -0
  44. package/dist/integrations/react-admin/components/SystemChanges/systemChangesResource.d.ts +19 -0
  45. package/dist/integrations/react-admin/components/SystemChanges/systemChangesResource.d.ts.map +1 -0
  46. package/dist/integrations/react-admin/components/SystemChanges/systemChangesResource.js +20 -0
  47. package/dist/integrations/react-admin/components/SystemChanges/systemChangesResource.js.map +1 -0
  48. package/dist/integrations/react-admin/components/SystemChanges/systemChangesView.d.ts +96 -0
  49. package/dist/integrations/react-admin/components/SystemChanges/systemChangesView.d.ts.map +1 -0
  50. package/dist/integrations/react-admin/components/SystemChanges/systemChangesView.js +99 -0
  51. package/dist/integrations/react-admin/components/SystemChanges/systemChangesView.js.map +1 -0
  52. package/dist/integrations/react-admin/components/index.d.ts +7 -3
  53. package/dist/integrations/react-admin/components/index.d.ts.map +1 -1
  54. package/dist/integrations/react-admin/components/index.js +5 -2
  55. package/dist/integrations/react-admin/components/index.js.map +1 -1
  56. package/dist/integrations/react-admin/components/shared/LabeledIf.d.ts +23 -0
  57. package/dist/integrations/react-admin/components/shared/LabeledIf.d.ts.map +1 -0
  58. package/dist/integrations/react-admin/components/shared/LabeledIf.js +13 -0
  59. package/dist/integrations/react-admin/components/shared/LabeledIf.js.map +1 -0
  60. package/dist/integrations/react-admin/components/shared/messages.d.ts +9 -0
  61. package/dist/integrations/react-admin/components/shared/messages.d.ts.map +1 -0
  62. package/dist/integrations/react-admin/components/shared/messages.js +9 -0
  63. package/dist/integrations/react-admin/components/shared/messages.js.map +1 -0
  64. package/dist/integrations/react-admin/index.d.ts +6 -2
  65. package/dist/integrations/react-admin/index.d.ts.map +1 -1
  66. package/dist/integrations/react-admin/index.js +5 -1
  67. package/dist/integrations/react-admin/index.js.map +1 -1
  68. package/dist/server/handler.cjs +3 -3
  69. package/dist/server/media-handler.cjs +2 -2
  70. package/dist/server/media-process-handler-dlq.cjs +2 -2
  71. package/dist/server/media-process-handler.cjs +2 -2
  72. package/dist/system-changes/index.d.ts +2 -0
  73. package/dist/system-changes/index.d.ts.map +1 -1
  74. package/dist/system-changes/index.js +1 -0
  75. package/dist/system-changes/index.js.map +1 -1
  76. package/dist/system-changes/labels.d.ts +23 -0
  77. package/dist/system-changes/labels.d.ts.map +1 -0
  78. package/dist/system-changes/labels.js +32 -0
  79. package/dist/system-changes/labels.js.map +1 -0
  80. package/dist/system-changes/record.d.ts +1 -1
  81. package/dist/system-changes/record.d.ts.map +1 -1
  82. package/dist/system-changes/record.js +1 -1
  83. package/dist/system-changes/record.js.map +1 -1
  84. package/dist/system-changes/slack.d.ts.map +1 -1
  85. package/dist/system-changes/slack.js +6 -27
  86. package/dist/system-changes/slack.js.map +1 -1
  87. package/dist/tools/dynamodb-system-change/cli.d.ts +35 -0
  88. package/dist/tools/dynamodb-system-change/cli.d.ts.map +1 -0
  89. package/dist/tools/dynamodb-system-change/cli.js +226 -0
  90. package/dist/tools/dynamodb-system-change/cli.js.map +1 -0
  91. package/dist/tools/dynamodb-system-change/details.d.ts +42 -0
  92. package/dist/tools/dynamodb-system-change/details.d.ts.map +1 -0
  93. package/dist/tools/dynamodb-system-change/details.js +59 -0
  94. package/dist/tools/dynamodb-system-change/details.js.map +1 -0
  95. package/dist/tools/dynamodb-system-change/index.d.ts +13 -0
  96. package/dist/tools/dynamodb-system-change/index.d.ts.map +1 -0
  97. package/dist/tools/dynamodb-system-change/index.js +9 -0
  98. package/dist/tools/dynamodb-system-change/index.js.map +1 -0
  99. package/dist/tools/dynamodb-system-change/releases.d.ts +34 -0
  100. package/dist/tools/dynamodb-system-change/releases.d.ts.map +1 -0
  101. package/dist/tools/dynamodb-system-change/releases.js +108 -0
  102. package/dist/tools/dynamodb-system-change/releases.js.map +1 -0
  103. package/dist/tools/dynamodb-system-change/run.d.ts +2 -0
  104. package/dist/tools/dynamodb-system-change/run.d.ts.map +1 -0
  105. package/dist/tools/dynamodb-system-change/run.js +6 -0
  106. package/dist/tools/dynamodb-system-change/run.js.map +1 -0
  107. package/dist/tools/dynamodb-system-change/send.d.ts +43 -0
  108. package/dist/tools/dynamodb-system-change/send.d.ts.map +1 -0
  109. package/dist/tools/dynamodb-system-change/send.js +97 -0
  110. package/dist/tools/dynamodb-system-change/send.js.map +1 -0
  111. package/docs/NOTIFY.md +1 -1
  112. package/docs/SYSTEM_CHANGES.md +69 -0
  113. package/package.json +15 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system-changes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system-changes/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AASrB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AAWvB,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * システム変更履歴の表示の部品(種別・結果の日本語のラベルと、details.lambdaReleases の取り出し。純粋な関数だけ)。
3
+ *
4
+ * Slack の文言(slack.ts)と、管理画面(integrations/react-admin の SystemChangesList / SystemChangesShow)が使う。
5
+ * 同じ表と取り出しを 2 か所に持たない(ADR 0006 の段階 4)。依存は型だけ(ブラウザのバンドルに Lambda の部品を入れない)。
6
+ */
7
+ import type { SystemChangeKind, SystemChangeResult } from './record.js';
8
+ /** 種別の日本語のラベル(キーの順は SYSTEM_CHANGE_KINDS と同じ。管理画面のフィルタの選択肢の順にもなる) */
9
+ export declare const SYSTEM_CHANGE_KIND_LABELS: Readonly<Record<SystemChangeKind, string>>;
10
+ /** 結果の日本語のラベル(キーの順は SYSTEM_CHANGE_RESULTS と同じ) */
11
+ export declare const SYSTEM_CHANGE_RESULT_LABELS: Readonly<Record<SystemChangeResult, string>>;
12
+ /** details.lambdaReleases の 1 件(ラッパーが infra の終了に埋め込む。change は create / replace / code など) */
13
+ export interface LambdaRelease {
14
+ target: string;
15
+ result: 'succeeded' | 'failed';
16
+ change?: string;
17
+ }
18
+ /**
19
+ * details.lambdaReleases の値から、形の合う要素だけを取り出す(関数名が空でない文字列、結果が成功・失敗)。
20
+ * 配列でなければ空。change は文字列のときだけ残す
21
+ */
22
+ export declare function parseLambdaReleases(value: unknown): LambdaRelease[];
23
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/system-changes/labels.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAK/E,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAKjF,CAAC;AAEL,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,EAAE,CASnE"}
@@ -0,0 +1,32 @@
1
+ /** 種別の日本語のラベル(キーの順は SYSTEM_CHANGE_KINDS と同じ。管理画面のフィルタの選択肢の順にもなる) */
2
+ export const SYSTEM_CHANGE_KIND_LABELS = Object.freeze({
3
+ 'app-release': 'アプリのリリース',
4
+ ota: 'OTA の配信',
5
+ infra: 'インフラの変更',
6
+ 'lambda-release': 'Lambda のリリース',
7
+ });
8
+ /** 結果の日本語のラベル(キーの順は SYSTEM_CHANGE_RESULTS と同じ) */
9
+ export const SYSTEM_CHANGE_RESULT_LABELS = Object.freeze({
10
+ started: '開始',
11
+ succeeded: '成功',
12
+ failed: '失敗',
13
+ });
14
+ /**
15
+ * details.lambdaReleases の値から、形の合う要素だけを取り出す(関数名が空でない文字列、結果が成功・失敗)。
16
+ * 配列でなければ空。change は文字列のときだけ残す
17
+ */
18
+ export function parseLambdaReleases(value) {
19
+ if (!Array.isArray(value))
20
+ return [];
21
+ return value.flatMap((v) => {
22
+ if (typeof v !== 'object' || v === null)
23
+ return [];
24
+ const { target, result, change } = v;
25
+ if (typeof target !== 'string' || target === '')
26
+ return [];
27
+ if (result !== 'succeeded' && result !== 'failed')
28
+ return [];
29
+ return [{ target, result, ...(typeof change === 'string' ? { change } : {}) }];
30
+ });
31
+ }
32
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/system-changes/labels.ts"],"names":[],"mappings":"AAQA,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAA+C,MAAM,CAAC,MAAM,CAAC;IACjG,aAAa,EAAE,UAAU;IACzB,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,SAAS;IAChB,gBAAgB,EAAE,cAAc;CACjC,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,2BAA2B,GACtC,MAAM,CAAC,MAAM,CAAC;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,IAAI;CACb,CAAC,CAAC;AASL;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAU,EAAmB,EAAE;QACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAA4B,CAAC;QAChE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,EAAE,CAAC;QAC3D,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /** リソース名(Records のコレクション名。管理画面の URL〔/systemChanges/{id}/show〕にも使う) */
2
2
  export declare const SYSTEM_CHANGES_RESOURCE = "systemChanges";
3
- /** 種別(許可リスト)。管理画面のラベル・Slack の文言(slack.ts の KIND_LABEL)と揃える */
3
+ /** 種別(許可リスト)。日本語のラベル(管理画面・Slack の文言)は labels.ts の SYSTEM_CHANGE_KIND_LABELS */
4
4
  export declare const SYSTEM_CHANGE_KINDS: readonly ["app-release", "ota", "infra", "lambda-release"];
5
5
  /** 結果(許可リスト) */
6
6
  export declare const SYSTEM_CHANGE_RESULTS: readonly ["started", "succeeded", "failed"];
@@ -1 +1 @@
1
- {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/system-changes/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../src/system-changes/record.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  import { cleanLine } from '../notify/policy.js';
8
8
  /** リソース名(Records のコレクション名。管理画面の URL〔/systemChanges/{id}/show〕にも使う) */
9
9
  export const SYSTEM_CHANGES_RESOURCE = 'systemChanges';
10
- /** 種別(許可リスト)。管理画面のラベル・Slack の文言(slack.ts の KIND_LABEL)と揃える */
10
+ /** 種別(許可リスト)。日本語のラベル(管理画面・Slack の文言)は labels.ts の SYSTEM_CHANGE_KIND_LABELS */
11
11
  export const SYSTEM_CHANGE_KINDS = ['app-release', 'ota', 'infra', 'lambda-release'];
12
12
  /** 結果(許可リスト) */
13
13
  export const SYSTEM_CHANGE_RESULTS = ['started', 'succeeded', 'failed'];
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/system-changes/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../src/system-changes/record.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/system-changes/slack.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuB5F;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAY5F;AA8BD,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,8DAA8D;AAC9D,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAiBR;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAIT"}
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../src/system-changes/slack.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAY1E;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAM5F;AA8BD,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,8DAA8D;AAC9D,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,EAAE,kBAAkB,EAC1B,EAAE,EAAE,MAAM,EACV,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAiBR;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAIT"}
@@ -9,18 +9,8 @@
9
9
  * 所要時間(durationMs)があれば「所要 52 秒」の形で足す。
10
10
  * 文言は asanowa(ADR-0044)の版に揃えた(ADR 0006 の決定。astro の「記録を省いた Lambda」は使わない)。
11
11
  */
12
+ import { SYSTEM_CHANGE_KIND_LABELS as KIND_LABEL, SYSTEM_CHANGE_RESULT_LABELS as RESULT_LABEL, parseLambdaReleases, } from './labels.js';
12
13
  import { SYSTEM_CHANGES_RESOURCE } from './record.js';
13
- const KIND_LABEL = {
14
- 'app-release': 'アプリのリリース',
15
- ota: 'OTA の配信',
16
- infra: 'インフラの変更',
17
- 'lambda-release': 'Lambda のリリース',
18
- };
19
- const RESULT_LABEL = {
20
- started: '開始',
21
- succeeded: '成功',
22
- failed: '失敗',
23
- };
24
14
  const RESULT_MARK = {
25
15
  started: '▶️',
26
16
  succeeded: '✅',
@@ -33,22 +23,11 @@ const esc = (s) => s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g,
33
23
  * 形の合わない要素は飛ばす
34
24
  */
35
25
  export function lambdaReleaseNames(value) {
36
- const succeeded = [];
37
- const failed = [];
38
- if (!Array.isArray(value))
39
- return { succeeded, failed };
40
- for (const v of value) {
41
- if (typeof v !== 'object' || v === null)
42
- continue;
43
- const { target, result } = v;
44
- if (typeof target !== 'string' || target === '')
45
- continue;
46
- if (result === 'succeeded')
47
- succeeded.push(target);
48
- else if (result === 'failed')
49
- failed.push(target);
50
- }
51
- return { succeeded, failed };
26
+ const releases = parseLambdaReleases(value);
27
+ return {
28
+ succeeded: releases.filter((r) => r.result === 'succeeded').map((r) => r.target),
29
+ failed: releases.filter((r) => r.result === 'failed').map((r) => r.target),
30
+ };
52
31
  }
53
32
  /** details のうち、Slack に出す項目(件数と、リリースされた Lambda の名前)。上限を設けて、長くしない */
54
33
  function detailLines(details) {
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/system-changes/slack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../src/system-changes/slack.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { type ReleasesLimit } from './details.js';
2
+ import { type RunCommand } from './send.js';
3
+ export interface CliIo {
4
+ out: (s: string) => void;
5
+ /** 標準エラー(改行は呼び出し側が付ける。バイト列も受ける) */
6
+ err: (s: string | Buffer) => void;
7
+ }
8
+ export interface CliDeps {
9
+ env?: NodeJS.ProcessEnv;
10
+ run?: RunCommand;
11
+ newChangeId?: () => string;
12
+ actor?: () => string;
13
+ }
14
+ export declare const USAGE = "\u4F7F\u3044\u65B9:\n dynamodb-system-change start --app <app> --env <env> --command <cmd> [\u5171\u901A]\n \u2192 \u5909\u66F4 ID\uFF08ULID\uFF09\u3092\u6A19\u6E96\u51FA\u529B\u306B\u51FA\u3059\uFF08SKIP_CHANGE_RECORD=1 \u3067\u306F\u4F55\u3082\u51FA\u3055\u306A\u3044\uFF09\n dynamodb-system-change finish --app <app> --env <env> --command <cmd> --exit-code <n>\n [--change-id <id>] [--log <file>] [\u5171\u901A]\n\n --app <app> \u30A2\u30D7\u30EA\u540D\uFF08details.app\u3002\u65E2\u5B9A\u306E\u95A2\u6570\u540D\u30FB\u5BFE\u8C61\u306B\u4F7F\u3046\uFF09\n --env <env> \u74B0\u5883\uFF08details.env\uFF09\n --command <cmd> \u30E9\u30C3\u30D1\u30FC\u306E\u30B3\u30DE\u30F3\u30C9\uFF08details.command\u3002destroy \u3067\u306F\u30EA\u30EA\u30FC\u30B9\u3092\u53D6\u308A\u51FA\u3055\u306A\u3044\uFF09\n --exit-code <n> terraform \u306E\u7D42\u4E86\u30B3\u30FC\u30C9\uFF080 = succeeded\u3001\u305D\u308C\u4EE5\u5916 = failed\u30020 \u4EE5\u5916\u306F details.exit_code\uFF09\n --change-id <id> start \u304C\u51FA\u3057\u305F\u5909\u66F4 ID\uFF08\u7A7A\u306A\u3089 changeId \u306A\u3057\u3067\u8A18\u9332\uFF09\n --log <file> plan / apply \u306E\u30ED\u30B0\uFF08\u4EF6\u6570\u3068 Lambda \u306E\u30EA\u30EA\u30FC\u30B9\u3092\u53D6\u308A\u51FA\u3059\uFF09\n\u5171\u901A:\n --repo <dir> git \u3092\u5B9F\u884C\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08\u65E2\u5B9A: \u30AB\u30EC\u30F3\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF09\n --dirty-path <path>... \u672A\u30B3\u30DF\u30C3\u30C8\u306E\u5909\u66F4\u3092\u8ABF\u3079\u308B\u5834\u6240\uFF08\u3042\u308C\u3070 commit \u306B -dirty\u3002\u65E2\u5B9A: \u4F5C\u696D\u30C4\u30EA\u30FC\u5168\u4F53\uFF09\n --function <name> \u8A18\u9332 Lambda\uFF08\u65E2\u5B9A: <app>-<env>-system-change-recorder\uFF09\n --target <target> \u5BFE\u8C61\uFF08\u65E2\u5B9A: terraform:<app>\uFF09\n --region <region> \u65E2\u5B9A: AWS_REGION\u3001\u7121\u3051\u308C\u3070 ap-northeast-1\n --releases-max-items <n|none> lambdaReleases \u306E\u4EF6\u6570\u306E\u4E0A\u9650\uFF08\u65E2\u5B9A: none\uFF09\n --releases-max-bytes <n|none> lambdaReleases \u306E JSON \u306E\u30D0\u30A4\u30C8\u6570\u306E\u4E0A\u9650\uFF08\u65E2\u5B9A: 3000\uFF09\n\n\u74B0\u5883\u5909\u6570: RECORD_DRY_RUN=1\uFF08\u547C\u3073\u51FA\u3055\u305A\u3001\u9001\u308B\u5185\u5BB9\u3092\u6A19\u6E96\u30A8\u30E9\u30FC\u306B\u51FA\u3059\uFF09\u3001SKIP_CHANGE_RECORD=1\uFF08\u8A18\u9332\u3057\u306A\u3044\uFF09\n\u7D42\u4E86\u30B3\u30FC\u30C9: start / finish \u306F\u5E38\u306B 0\uFF08\u8A18\u9332\u306E\u5931\u6557\u3067 apply \u3092\u6B62\u3081\u306A\u3044\uFF09\u3002--help \u306F 0\u3001\u30B5\u30D6\u30B3\u30DE\u30F3\u30C9\u306E\u8AA4\u308A\u306F 2";
15
+ export interface RecordArgs {
16
+ app: string;
17
+ env: string;
18
+ command: string;
19
+ repo?: string;
20
+ dirtyPaths: string[];
21
+ functionName: string;
22
+ target: string;
23
+ region?: string;
24
+ limit: ReleasesLimit;
25
+ exitCode?: number;
26
+ changeId?: string;
27
+ log?: string;
28
+ }
29
+ /** 引数を解釈する(誤りは Error)。`--change-id` と `--log` は空の値を許す(ラッパーの変数が空のとき) */
30
+ export declare function parseRecordArgs(sub: 'start' | 'finish', argv: string[]): RecordArgs;
31
+ /** 終了の details(件数・exit_code・lambdaReleases)。destroy ではリリースを取り出さない */
32
+ export declare function finishDetailsOf(args: RecordArgs): Record<string, unknown>;
33
+ /** CLI 本体。終了コードを返す(process.exitCode は run.ts が設定する) */
34
+ export declare function main(argv: string[], io: CliIo, deps?: CliDeps): number;
35
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/tools/dynamodb-system-change/cli.ts"],"names":[],"mappings":"AAcA,OAAO,EAA8B,KAAK,aAAa,EAAsB,MAAM,cAAc,CAAC;AAElG,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,WAAW,CAAC;AAEnB,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACzB,mCAAmC;IACnC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,wxFAsBsD,CAAC;AAEzE,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAyBD,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAsDnF;AAYD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzE;AA8DD,uDAAuD;AACvD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAE,OAAY,GAAG,MAAM,CAW1E"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * `dynamodb-system-change start|finish`: terraform の apply・destroy の開始と終了を、システム変更履歴に記録する
3
+ * (ADR 0006 の段階 5 = (c)。docs/SYSTEM_CHANGES.md の「記録の CLI」)。
4
+ *
5
+ * 各アプリの terraform-wrapper.sh(bash)は残し、記録に送る部分(開始・終了の呼び出し、details の組み立て、
6
+ * Lambda のリリースの取り出し)だけをこの CLI に委ねる。**記録の失敗で apply を止めない**: start / finish は、
7
+ * 引数の誤りを含めて、常に終了コード 0 で終わる(警告は標準エラー)。
8
+ *
9
+ * 受け渡し: start は変更 ID(ULID)を標準出力に 1 行で出す(SKIP_CHANGE_RECORD=1 では何も出さない)。
10
+ * ラッパーはそれをシェルの変数に持ち、finish の `--change-id` に渡す(現行の CHANGE_ID と同じ)。
11
+ */
12
+ import { readFileSync } from 'node:fs';
13
+ import { ulid } from 'ulid';
14
+ import { DEFAULT_RELEASES_MAX_BYTES, buildFinishDetails } from './details.js';
15
+ import { extractLambdaReleases } from './releases.js';
16
+ import { actorOf, commitOf, sendSystemChange, } from './send.js';
17
+ export const USAGE = `使い方:
18
+ dynamodb-system-change start --app <app> --env <env> --command <cmd> [共通]
19
+ → 変更 ID(ULID)を標準出力に出す(SKIP_CHANGE_RECORD=1 では何も出さない)
20
+ dynamodb-system-change finish --app <app> --env <env> --command <cmd> --exit-code <n>
21
+ [--change-id <id>] [--log <file>] [共通]
22
+
23
+ --app <app> アプリ名(details.app。既定の関数名・対象に使う)
24
+ --env <env> 環境(details.env)
25
+ --command <cmd> ラッパーのコマンド(details.command。destroy ではリリースを取り出さない)
26
+ --exit-code <n> terraform の終了コード(0 = succeeded、それ以外 = failed。0 以外は details.exit_code)
27
+ --change-id <id> start が出した変更 ID(空なら changeId なしで記録)
28
+ --log <file> plan / apply のログ(件数と Lambda のリリースを取り出す)
29
+ 共通:
30
+ --repo <dir> git を実行するディレクトリ(既定: カレントディレクトリ)
31
+ --dirty-path <path>... 未コミットの変更を調べる場所(あれば commit に -dirty。既定: 作業ツリー全体)
32
+ --function <name> 記録 Lambda(既定: <app>-<env>-system-change-recorder)
33
+ --target <target> 対象(既定: terraform:<app>)
34
+ --region <region> 既定: AWS_REGION、無ければ ap-northeast-1
35
+ --releases-max-items <n|none> lambdaReleases の件数の上限(既定: none)
36
+ --releases-max-bytes <n|none> lambdaReleases の JSON のバイト数の上限(既定: ${DEFAULT_RELEASES_MAX_BYTES})
37
+
38
+ 環境変数: RECORD_DRY_RUN=1(呼び出さず、送る内容を標準エラーに出す)、SKIP_CHANGE_RECORD=1(記録しない)
39
+ 終了コード: start / finish は常に 0(記録の失敗で apply を止めない)。--help は 0、サブコマンドの誤りは 2`;
40
+ const SINGLE = {
41
+ '--app': 'app',
42
+ '--env': 'env',
43
+ '--command': 'command',
44
+ '--repo': 'repo',
45
+ '--function': 'functionName',
46
+ '--target': 'target',
47
+ '--region': 'region',
48
+ '--exit-code': 'exitCode',
49
+ '--change-id': 'changeId',
50
+ '--log': 'log',
51
+ '--releases-max-items': 'maxItems',
52
+ '--releases-max-bytes': 'maxBytes',
53
+ };
54
+ function limitValue(name, v, fallback) {
55
+ if (v === undefined)
56
+ return fallback;
57
+ if (v === 'none')
58
+ return undefined;
59
+ if (!/^\d+$/.test(v))
60
+ throw new Error(`${name} は 0 以上の整数か none`);
61
+ return Number(v);
62
+ }
63
+ /** 引数を解釈する(誤りは Error)。`--change-id` と `--log` は空の値を許す(ラッパーの変数が空のとき) */
64
+ export function parseRecordArgs(sub, argv) {
65
+ const v = {};
66
+ const dirtyPaths = [];
67
+ let inDirty = false;
68
+ for (let i = 0; i < argv.length; i++) {
69
+ const a = argv[i];
70
+ if (a in SINGLE) {
71
+ const value = argv[++i];
72
+ const key = SINGLE[a];
73
+ const allowEmpty = key === 'changeId' || key === 'log';
74
+ if (value === undefined || (!allowEmpty && (value === '' || value.startsWith('--')))) {
75
+ throw new Error(`${a} に値が要る`);
76
+ }
77
+ v[key] = value;
78
+ inDirty = false;
79
+ }
80
+ else if (a === '--dirty-path') {
81
+ inDirty = true;
82
+ }
83
+ else if (a.startsWith('--')) {
84
+ throw new Error(`未知の引数: ${a}`);
85
+ }
86
+ else if (inDirty) {
87
+ dirtyPaths.push(a);
88
+ }
89
+ else {
90
+ throw new Error(`位置が不正な引数: ${a}`);
91
+ }
92
+ }
93
+ for (const k of ['app', 'env', 'command']) {
94
+ if (!v[k])
95
+ throw new Error(`--${k} が要る`);
96
+ }
97
+ const app = v.app;
98
+ const env = v.env;
99
+ let exitCode;
100
+ if (sub === 'finish') {
101
+ if (v.exitCode === undefined || !/^\d+$/.test(v.exitCode)) {
102
+ throw new Error('--exit-code に 0 以上の整数が要る');
103
+ }
104
+ exitCode = Number(v.exitCode);
105
+ }
106
+ return {
107
+ app,
108
+ env,
109
+ command: v.command,
110
+ repo: v.repo,
111
+ dirtyPaths,
112
+ functionName: v.functionName ?? `${app}-${env}-system-change-recorder`,
113
+ target: v.target ?? `terraform:${app}`,
114
+ region: v.region,
115
+ limit: {
116
+ maxItems: limitValue('--releases-max-items', v.maxItems),
117
+ maxBytes: limitValue('--releases-max-bytes', v.maxBytes, DEFAULT_RELEASES_MAX_BYTES),
118
+ },
119
+ exitCode,
120
+ changeId: v.changeId || undefined,
121
+ log: v.log || undefined,
122
+ };
123
+ }
124
+ /** ログを読む(読めなければ undefined。不正な UTF-8 は置き換える) */
125
+ function readLog(path) {
126
+ if (!path)
127
+ return undefined;
128
+ try {
129
+ return readFileSync(path).toString('utf8');
130
+ }
131
+ catch {
132
+ return undefined;
133
+ }
134
+ }
135
+ /** 終了の details(件数・exit_code・lambdaReleases)。destroy ではリリースを取り出さない */
136
+ export function finishDetailsOf(args) {
137
+ const exitCode = args.exitCode ?? 0;
138
+ const logText = readLog(args.log);
139
+ let releases = [];
140
+ if (args.command !== 'destroy' && logText !== undefined) {
141
+ try {
142
+ releases = extractLambdaReleases(logText);
143
+ }
144
+ catch {
145
+ releases = []; // 現行: 取り出しに失敗したら []
146
+ }
147
+ }
148
+ try {
149
+ return { ...buildFinishDetails({ exitCode, logText, releases, limit: args.limit }) };
150
+ }
151
+ catch {
152
+ return {}; // 現行: 組み立てに失敗したら {}
153
+ }
154
+ }
155
+ function record(args, result, extra, io, deps) {
156
+ const env = deps.env ?? process.env;
157
+ let payload;
158
+ try {
159
+ payload = {
160
+ kind: 'infra',
161
+ result,
162
+ target: args.target,
163
+ commit: commitOf(args.repo, args.dirtyPaths, deps.run),
164
+ actor: (deps.actor ?? actorOf)(),
165
+ // 開始と終了の両方に付ける(記録 Lambda は details を深くマージするので、同じキーが重なっても害はない)
166
+ details: { ...extra, app: args.app, env: args.env, command: args.command },
167
+ ...(args.changeId ? { changeId: args.changeId } : {}),
168
+ };
169
+ }
170
+ catch {
171
+ io.err('[change-record] ペイロードの作成に失敗しました(記録をスキップ)\n');
172
+ return;
173
+ }
174
+ sendSystemChange(payload, {
175
+ functionName: args.functionName,
176
+ region: args.region || env.AWS_REGION || 'ap-northeast-1',
177
+ dryRun: env.RECORD_DRY_RUN === '1',
178
+ warn: io.err,
179
+ run: deps.run,
180
+ });
181
+ }
182
+ /** start / finish の本体。記録の失敗・引数の誤りでも 0 を返す */
183
+ function runRecord(sub, argv, io, deps) {
184
+ const env = deps.env ?? process.env;
185
+ if (env.SKIP_CHANGE_RECORD === '1')
186
+ return 0;
187
+ let args;
188
+ try {
189
+ args = parseRecordArgs(sub, argv);
190
+ }
191
+ catch (e) {
192
+ io.err(`[change-record] 引数の誤り(記録をスキップ): ${e.message}\n`);
193
+ return 0;
194
+ }
195
+ try {
196
+ if (sub === 'start') {
197
+ const changeId = (deps.newChangeId ?? ulid)();
198
+ // 変更 ID は、記録の成否によらず出す(終了の記録に同じ ID を付ける。現行と同じ)
199
+ io.out(`${changeId}\n`);
200
+ record({ ...args, changeId }, 'started', {}, io, deps);
201
+ }
202
+ else {
203
+ const result = args.exitCode === 0 ? 'succeeded' : 'failed';
204
+ record(args, result, finishDetailsOf(args), io, deps);
205
+ }
206
+ }
207
+ catch (e) {
208
+ io.err(`[change-record] 記録に失敗しました(処理は続行): ${e.message}\n`);
209
+ }
210
+ return 0;
211
+ }
212
+ /** CLI 本体。終了コードを返す(process.exitCode は run.ts が設定する) */
213
+ export function main(argv, io, deps = {}) {
214
+ const [sub, ...rest] = argv;
215
+ // --help はサブコマンドの位置だけで見る(start / finish の引数の値の -h を拾わない)。
216
+ // USAGE は標準エラーに出す(start の標準出力は変更 ID の受け渡しに使うため、汚さない)
217
+ if (sub === '--help' || sub === '-h') {
218
+ io.err(`${USAGE}\n`);
219
+ return 0;
220
+ }
221
+ if (sub === 'start' || sub === 'finish')
222
+ return runRecord(sub, rest, io, deps);
223
+ io.err(`サブコマンドは start か finish(got: ${sub ?? 'なし'})\n\n${USAGE}\n`);
224
+ return 2;
225
+ }
226
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/tools/dynamodb-system-change/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * 終了(succeeded / failed)の記録の `details` を組み立てる(両アプリの terraform-wrapper.sh の finish_change の
3
+ * Python を移植したもの)。純粋な関数だけ(ファイルの読み取りは呼び出し側)。
4
+ */
5
+ import { type ExtractedLambdaRelease } from './releases.js';
6
+ /** `lambdaReleases` の切り詰めの既定(asanowa の現行: 3000 バイトまで。件数の上限なし) */
7
+ export declare const DEFAULT_RELEASES_MAX_BYTES = 3000;
8
+ export interface ReleasesLimit {
9
+ /** 件数の上限(undefined は無制限)。astro の現行は 30 */
10
+ maxItems?: number;
11
+ /** `lambdaReleases` の JSON(区切りの空白なし、UTF-8)のバイト数の上限(undefined は無制限)。asanowa の現行は 3000 */
12
+ maxBytes?: number;
13
+ }
14
+ export interface FinishDetails {
15
+ add?: number;
16
+ change?: number;
17
+ destroy?: number;
18
+ exit_code?: number;
19
+ lambdaReleases?: ExtractedLambdaRelease[];
20
+ lambdaReleasesOmitted?: number;
21
+ }
22
+ /** ログの最後の完了の行から、件数を取り出す(無ければ undefined) */
23
+ export declare function resourceCountsOf(logText: string): Pick<FinishDetails, 'add' | 'change' | 'destroy'> | undefined;
24
+ /**
25
+ * 失敗を先に並べ(失敗は落とさない)、上限まで残す。入らなかった件数を omitted に返す。
26
+ * 記録 Lambda の details の上限(4096 バイト)に収めるため
27
+ */
28
+ export declare function limitReleases(releases: readonly ExtractedLambdaRelease[], limit?: ReleasesLimit): {
29
+ items: ExtractedLambdaRelease[];
30
+ omitted: number;
31
+ };
32
+ /**
33
+ * 終了の details(件数・exit_code・lambdaReleases・lambdaReleasesOmitted。キーの順も現行と同じ)。
34
+ * 件数は、成功(exitCode 0)でログがあるときだけ
35
+ */
36
+ export declare function buildFinishDetails(input: {
37
+ exitCode: number;
38
+ logText?: string;
39
+ releases: readonly ExtractedLambdaRelease[];
40
+ limit?: ReleasesLimit;
41
+ }): FinishDetails;
42
+ //# sourceMappingURL=details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../src/tools/dynamodb-system-change/details.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,sBAAsB,EAAa,MAAM,eAAe,CAAC;AAEvE,iEAAiE;AACjE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAMD,2CAA2C;AAC3C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GACd,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,SAAS,CAM/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,sBAAsB,EAAE,EAC3C,KAAK,GAAE,aAAwD,GAC9D;IAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBtD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC5C,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,GAAG,aAAa,CAUhB"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * 終了(succeeded / failed)の記録の `details` を組み立てる(両アプリの terraform-wrapper.sh の finish_change の
3
+ * Python を移植したもの)。純粋な関数だけ(ファイルの読み取りは呼び出し側)。
4
+ */
5
+ import { stripAnsi } from './releases.js';
6
+ /** `lambdaReleases` の切り詰めの既定(asanowa の現行: 3000 バイトまで。件数の上限なし) */
7
+ export const DEFAULT_RELEASES_MAX_BYTES = 3000;
8
+ // `Apply complete! Resources: 1 added, 2 changed, 3 destroyed.` と `Destroy complete! Resources: 3 destroyed.`
9
+ const COMPLETE = /(?:Apply|Destroy) complete! Resources: (\d+) (?:added|destroyed)(?:, (\d+) changed, (\d+) destroyed)?/g;
10
+ /** ログの最後の完了の行から、件数を取り出す(無ければ undefined) */
11
+ export function resourceCountsOf(logText) {
12
+ const ms = [...stripAnsi(logText).matchAll(COMPLETE)];
13
+ const m = ms[ms.length - 1];
14
+ if (!m)
15
+ return undefined;
16
+ if (m[2] === undefined)
17
+ return { add: 0, change: 0, destroy: Number(m[1]) }; // Destroy の短い形
18
+ return { add: Number(m[1]), change: Number(m[2]), destroy: Number(m[3]) };
19
+ }
20
+ /**
21
+ * 失敗を先に並べ(失敗は落とさない)、上限まで残す。入らなかった件数を omitted に返す。
22
+ * 記録 Lambda の details の上限(4096 バイト)に収めるため
23
+ */
24
+ export function limitReleases(releases, limit = { maxBytes: DEFAULT_RELEASES_MAX_BYTES }) {
25
+ const sorted = [
26
+ ...releases.filter((d) => d.result === 'failed'),
27
+ ...releases.filter((d) => d.result !== 'failed'),
28
+ ];
29
+ const items = [];
30
+ for (const d of sorted) {
31
+ if (limit.maxItems !== undefined && items.length >= limit.maxItems)
32
+ break;
33
+ if (limit.maxBytes !== undefined &&
34
+ Buffer.byteLength(JSON.stringify([...items, d]), 'utf8') > limit.maxBytes) {
35
+ break;
36
+ }
37
+ items.push({ target: d.target, result: d.result, change: d.change });
38
+ }
39
+ return { items, omitted: sorted.length - items.length };
40
+ }
41
+ /**
42
+ * 終了の details(件数・exit_code・lambdaReleases・lambdaReleasesOmitted。キーの順も現行と同じ)。
43
+ * 件数は、成功(exitCode 0)でログがあるときだけ
44
+ */
45
+ export function buildFinishDetails(input) {
46
+ const out = {};
47
+ if (input.exitCode === 0 && input.logText !== undefined) {
48
+ Object.assign(out, resourceCountsOf(input.logText));
49
+ }
50
+ if (input.exitCode !== 0)
51
+ out.exit_code = input.exitCode;
52
+ const { items, omitted } = limitReleases(input.releases, input.limit);
53
+ if (items.length > 0)
54
+ out.lambdaReleases = items;
55
+ if (omitted > 0)
56
+ out.lambdaReleasesOmitted = omitted;
57
+ return out;
58
+ }
59
+ //# sourceMappingURL=details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"details.js","sourceRoot":"","sources":["../../../src/tools/dynamodb-system-change/details.ts"],"names":[],"mappings":"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"}