@intentius/chant-lexicon-aws 0.37.2 → 0.40.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 (95) hide show
  1. package/dist/ambient.d.ts.map +1 -1
  2. package/dist/api/read-client.d.ts.map +1 -1
  3. package/dist/codegen/generate.d.ts.map +1 -1
  4. package/dist/codegen/naming.d.ts +18 -1
  5. package/dist/codegen/naming.d.ts.map +1 -1
  6. package/dist/composites/alb-shared.d.ts +7 -1
  7. package/dist/composites/alb-shared.d.ts.map +1 -1
  8. package/dist/composites/ec2-instance-role.d.ts +4 -1
  9. package/dist/composites/ec2-instance-role.d.ts.map +1 -1
  10. package/dist/composites/efs-with-access-point.d.ts +5 -1
  11. package/dist/composites/efs-with-access-point.d.ts.map +1 -1
  12. package/dist/composites/fargate-alb.d.ts +14 -1
  13. package/dist/composites/fargate-alb.d.ts.map +1 -1
  14. package/dist/composites/fargate-service.d.ts +19 -8
  15. package/dist/composites/fargate-service.d.ts.map +1 -1
  16. package/dist/composites/index.d.ts +2 -2
  17. package/dist/composites/index.d.ts.map +1 -1
  18. package/dist/composites/lambda-api.d.ts +3 -1
  19. package/dist/composites/lambda-api.d.ts.map +1 -1
  20. package/dist/composites/lambda-dynamodb.d.ts +9 -2
  21. package/dist/composites/lambda-dynamodb.d.ts.map +1 -1
  22. package/dist/composites/lambda-eventbridge.d.ts +9 -2
  23. package/dist/composites/lambda-eventbridge.d.ts.map +1 -1
  24. package/dist/composites/lambda-s3.d.ts +3 -1
  25. package/dist/composites/lambda-s3.d.ts.map +1 -1
  26. package/dist/composites/lambda-sns.d.ts +10 -2
  27. package/dist/composites/lambda-sns.d.ts.map +1 -1
  28. package/dist/composites/lambda-sqs.d.ts +9 -2
  29. package/dist/composites/lambda-sqs.d.ts.map +1 -1
  30. package/dist/composites/microvm-app.d.ts +25 -4
  31. package/dist/composites/microvm-app.d.ts.map +1 -1
  32. package/dist/composites/minimal-vpc.d.ts +10 -1
  33. package/dist/composites/minimal-vpc.d.ts.map +1 -1
  34. package/dist/composites/rds-instance.d.ts +1 -1
  35. package/dist/composites/rds-instance.d.ts.map +1 -1
  36. package/dist/composites/scheduled-lambda.d.ts +15 -3
  37. package/dist/composites/scheduled-lambda.d.ts.map +1 -1
  38. package/dist/composites/solr-fargate-service.d.ts +27 -1
  39. package/dist/composites/solr-fargate-service.d.ts.map +1 -1
  40. package/dist/generated/index.d.ts +57 -49
  41. package/dist/generated/index.d.ts.map +1 -1
  42. package/dist/import/generator.d.ts.map +1 -1
  43. package/dist/index.d.ts +2 -2
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/integrity.json +4 -4
  46. package/dist/manifest.json +1 -1
  47. package/dist/meta.json +722 -666
  48. package/dist/op/activities/floci.d.ts.map +1 -1
  49. package/dist/plugin.d.ts.map +1 -1
  50. package/dist/reference-catalog.d.ts.map +1 -1
  51. package/dist/spec/pin.d.ts +116 -0
  52. package/dist/spec/pin.d.ts.map +1 -0
  53. package/dist/spec/pinned-types.json +1652 -0
  54. package/dist/types/index.d.ts +679 -555
  55. package/dist/validate.d.ts.map +1 -1
  56. package/package.json +2 -2
  57. package/src/ambient.test.ts +21 -0
  58. package/src/ambient.ts +16 -0
  59. package/src/api/read-client.test.ts +31 -0
  60. package/src/api/read-client.ts +43 -1
  61. package/src/codegen/generate.ts +17 -3
  62. package/src/codegen/naming.ts +31 -2
  63. package/src/composites/alb-shared.ts +1 -1
  64. package/src/composites/ec2-instance-role.ts +1 -1
  65. package/src/composites/efs-with-access-point.ts +1 -1
  66. package/src/composites/fargate-alb.ts +1 -1
  67. package/src/composites/fargate-service.ts +15 -10
  68. package/src/composites/index.ts +2 -2
  69. package/src/composites/lambda-api.ts +3 -2
  70. package/src/composites/lambda-dynamodb.ts +4 -3
  71. package/src/composites/lambda-eventbridge.ts +4 -3
  72. package/src/composites/lambda-s3.ts +3 -2
  73. package/src/composites/lambda-sns.ts +4 -3
  74. package/src/composites/lambda-sqs.ts +4 -3
  75. package/src/composites/microvm-app.test.ts +39 -1
  76. package/src/composites/microvm-app.ts +32 -11
  77. package/src/composites/minimal-vpc.ts +1 -1
  78. package/src/composites/rds-instance.ts +1 -1
  79. package/src/composites/scheduled-lambda.ts +4 -3
  80. package/src/composites/solr-fargate-service.ts +7 -1
  81. package/src/generated/index.d.ts +679 -555
  82. package/src/generated/index.ts +58 -50
  83. package/src/generated/lexicon-aws.json +722 -666
  84. package/src/import/generator.ts +5 -4
  85. package/src/index.ts +2 -2
  86. package/src/lifecycle-integration.test.ts +25 -0
  87. package/src/op/activities/floci.test.ts +2 -2
  88. package/src/op/activities/floci.ts +6 -1
  89. package/src/plugin.ts +4 -0
  90. package/src/reference-catalog.test.ts +28 -0
  91. package/src/reference-catalog.ts +7 -0
  92. package/src/spec/pin.test.ts +248 -0
  93. package/src/spec/pin.ts +247 -0
  94. package/src/spec/pinned-types.json +1652 -0
  95. package/src/validate.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"floci.d.ts","sourceRoot":"","sources":["../../../src/op/activities/floci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AASpG,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7E;AAaD,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,YAAkD,CAAC;AAE5E;4DAC4D;AAC5D,eAAO,MAAM,cAAc,EAAE,kBAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,0BAAyB,CAAC;AACzD,eAAO,MAAM,cAAc,0BAAqB,CAAC;AACjD,eAAO,MAAM,cAAc,0BAAqB,CAAC;AAEjD,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,IAAI,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBzG;AAED,kFAAkF;AAClF,wBAAsB,SAAS,CAAC,IAAI,GAAE,aAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
1
+ {"version":3,"file":"floci.d.ts","sourceRoot":"","sources":["../../../src/op/activities/floci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAapG,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO7E;AAcD,+EAA+E;AAC/E,eAAO,MAAM,UAAU,EAAE,YAAkD,CAAC;AAE5E;4DAC4D;AAC5D,eAAO,MAAM,cAAc,EAAE,kBAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,0BAAyB,CAAC;AACzD,eAAO,MAAM,cAAc,0BAAqB,CAAC;AACjD,eAAO,MAAM,cAAc,0BAAqB,CAAC;AAEjD,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,IAAI,GAAE,WAAgB,GAAG,MAAM,CAO9D;AAED;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,IAAI,GAAE,WAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBzG;AAED,kFAAkF;AAClF,wBAAsB,SAAS,CAAC,IAAI,GAAE,aAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAgL,MAAM,0BAA0B,CAAC;AAoC5O;yEACyE;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAWnD,eAAO,MAAM,SAAS,EAAE,aAu5BvB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAgL,MAAM,0BAA0B,CAAC;AAqC5O;yEACyE;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAWnD,eAAO,MAAM,SAAS,EAAE,aA05BvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reference-catalog.d.ts","sourceRoot":"","sources":["../src/reference-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAyFjC,CAAC"}
1
+ {"version":3,"file":"reference-catalog.d.ts","sourceRoot":"","sources":["../src/reference-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBAgGjC,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Content pin for the CloudFormation Registry schema (#1390).
3
+ *
4
+ * cfn-lint is pinned to a git tag (`PINNED_VERSIONS.cfnLint`). The registry
5
+ * schema could not be: it is a single "latest" artifact with no version in the
6
+ * path, republished constantly —
7
+ *
8
+ * $ curl -sI .../CloudformationSchema.zip
9
+ * Last-Modified: Mon, 03 Aug 2026 01:29:20 GMT
10
+ *
11
+ * — so `npm run --prefix lexicons/aws prepack`, which CI runs on every build and
12
+ * any local codegen or docs task triggers, resolved to whatever CloudFormation
13
+ * shipped that morning. During the #1312 docs work a docs-only branch twice
14
+ * picked up a resource-count move with nothing in the commit explaining it. The
15
+ * count was only the visible symptom; the same regeneration rewrites generated
16
+ * types and the resource registry.
17
+ *
18
+ * Since there is no version to pin, the pin is over content. Specifically over
19
+ * the **extracted schemas**, not the zip: AWS repackaging the archive changes
20
+ * its `ETag` and its bytes while the schemas are identical, and a pin that fires
21
+ * on that would be noise. Sorted `typeName` → `sha256(schema)`, hashed in order,
22
+ * moves exactly when a schema does.
23
+ *
24
+ * Advisory is not enough here, unlike the emulator image pins (#808). An
25
+ * emulator that drifts fails a test you can see; a spec that drifts silently
26
+ * rewrites committed artifacts in a branch about something else. So a mismatch
27
+ * refuses, and accepting is a deliberate act that lands as its own commit.
28
+ */
29
+ /**
30
+ * The resource types the pinned archive contained.
31
+ *
32
+ * Committed beside the digest so accepting a new spec is reviewable as a diff:
33
+ * the PR that moves the pin shows exactly which types AWS added or removed,
34
+ * rather than one opaque hash replacing another. The generated artifacts cannot
35
+ * play that role — `src/generated/` is not committed.
36
+ */
37
+ export declare const PINNED_TYPE_NAMES: ReadonlySet<string>;
38
+ export interface SpecPin {
39
+ /** `sha256:…` over the sorted typeName → schema content. */
40
+ readonly digest: string;
41
+ /** How many resource types the pinned archive contained. */
42
+ readonly resources: number;
43
+ /** ISO date the pin was accepted, so a diff reads as a decision. */
44
+ readonly accepted: string;
45
+ }
46
+ /**
47
+ * The accepted upstream spec.
48
+ *
49
+ * To move it: run generation, read the refusal, confirm the delta is one you
50
+ * want, and paste the printed pin here in its own commit.
51
+ */
52
+ export declare const AWS_SPEC_PIN: SpecPin;
53
+ /** Env var that accepts whatever upstream currently serves, printing the new pin. */
54
+ export declare const ACCEPT_ENV = "CHANT_ACCEPT_AWS_SPEC";
55
+ /**
56
+ * Digest the extracted schemas. Stable against repackaging; changes when any
57
+ * schema's bytes change, or when a type is added or removed.
58
+ */
59
+ export declare function specContentDigest(schemas: ReadonlyMap<string, Buffer>): string;
60
+ /** What moved between the pinned archive and the one just fetched. */
61
+ export interface SpecDrift {
62
+ digest: string;
63
+ resources: number;
64
+ added: string[];
65
+ removed: string[];
66
+ }
67
+ /** Compare a freshly fetched archive against a pin. `null` when it matches. */
68
+ export declare function specDrift(schemas: ReadonlyMap<string, Buffer>, pinnedNames: ReadonlySet<string> | undefined, pin?: SpecPin): SpecDrift | null;
69
+ /** The refusal a mismatch produces, or the acceptance notice under {@link ACCEPT_ENV}. */
70
+ export declare function driftMessage(drift: SpecDrift, pin?: SpecPin, options?: {
71
+ fatal?: boolean;
72
+ }): string;
73
+ /**
74
+ * Refuse a fetched archive whose RESOURCE SET does not match the pin.
75
+ *
76
+ * Under {@link ACCEPT_ENV} it warns with the same detail instead, so the
77
+ * accept-then-paste loop is one command rather than two.
78
+ *
79
+ * ## Why byte drift alone is a warning (chant #1473)
80
+ *
81
+ * This originally threw on any digest mismatch, which made the aws lexicon
82
+ * unpublishable. `prepack` runs `generate`, `generate` fetches from upstream,
83
+ * and CloudFormation republishes individual schemas several times a day: three
84
+ * distinct digests were observed on 2026-08-03 alone, all with an unchanged
85
+ * count of 1650, and two fetches two hours apart differed in 4 of 1650 files.
86
+ * `chant-v0.39.0` published 13 packages and failed on aws for exactly this,
87
+ * with a pin ~18 hours old.
88
+ *
89
+ * A pin that goes stale by itself within hours cannot gate a release: it does
90
+ * not distinguish "someone regenerated against a spec nobody chose" from
91
+ * "AWS edited a description this afternoon".
92
+ *
93
+ * So the two cases are separated:
94
+ *
95
+ * - **The resource set moved** (a type added or removed) — still a refusal.
96
+ * That always changes the published API, and it is the case #1390 was filed
97
+ * about.
98
+ * - **Only bytes moved**, with an identical type set — a warning. Whether it
99
+ * matters is decided downstream by the surface gate in core's
100
+ * `validateLexiconArtifacts`, which compares the generated API against the
101
+ * committed `surface.snapshot.json`. That gate is exact: a byte change that
102
+ * alters the emitted surface fails the build, and one that does not is
103
+ * correctly ignored.
104
+ *
105
+ * The guarantee is unchanged in substance — nothing ships whose surface was
106
+ * not reviewed — and it is now enforced against the thing that actually
107
+ * matters rather than against an archive that is not stable enough to pin.
108
+ */
109
+ export declare function assertPinnedSpec(schemas: ReadonlyMap<string, Buffer>, options?: {
110
+ pin?: SpecPin;
111
+ /** Defaults to {@link PINNED_TYPE_NAMES}; overridden in tests. */
112
+ pinnedNames?: ReadonlySet<string>;
113
+ env?: NodeJS.ProcessEnv;
114
+ warn?: (message: string) => void;
115
+ }): void;
116
+ //# sourceMappingURL=pin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../../src/spec/pin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAKH;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAoC,CAAC;AAEvF,MAAM,WAAW,OAAO;IACtB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,OAI1B,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,0BAA0B,CAAC;AAElD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAO9E;AAED,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CACvB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,EAC5C,GAAG,GAAE,OAAsB,GAC1B,SAAS,GAAG,IAAI,CAalB;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAC1B,KAAK,EAAE,SAAS,EAChB,GAAG,GAAE,OAAsB,EAC3B,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,MAAM,CAyDR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GACL,IAAI,CA8BN"}