@reventlessdev/rescript-pulumi-aws 3.0.0-alpha.38 → 3.0.0-alpha.39

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 CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 3.0.0-alpha.39 (2026-11-02)
7
+
8
+ ### Features
9
+
10
+ * a view row knows its last change, and the local platform keeps every change ([1a1fd71](https://github.com/ReventlessDev/reventless-core/commit/1a1fd7117d9837696a7c0080dcd6f0983e57780c))
11
+
12
+
6
13
  # 3.0.0-alpha.38 (2026-11-01)
7
14
 
8
15
  **Note:** Version bump only for package @reventlessdev/rescript-pulumi-aws
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/rescript-pulumi-aws",
3
- "version": "3.0.0-alpha.38",
3
+ "version": "3.0.0-alpha.39",
4
4
  "description": "ReScript bindings for @pulumi/aws",
5
5
  "license": "Apache-2.0",
6
6
  "jest": {
@@ -22,9 +22,9 @@
22
22
  "@pulumi/aws": "~7.19.0",
23
23
  "@pulumi/aws-native": "^1.62.0",
24
24
  "sury": "11.0.0",
25
- "@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.38",
25
+ "@reventlessdev/rescript-aws-sdk": "3.0.0-alpha.39",
26
26
  "@reventlessdev/rescript-pulumi-pulumi": "3.0.0-alpha.0",
27
- "@reventlessdev/rescript-node": "2.0.0-alpha.25"
27
+ "@reventlessdev/rescript-node": "2.0.0-alpha.26"
28
28
  },
29
29
  "devDependencies": {
30
30
  "esbuild": "^0.25.12",
@@ -61,6 +61,21 @@ let exemptPreamble = (~elevatedGroups: array<string>) => {
61
61
  const _exempt = _sub == null || _groups.some(g => _elevated.indexOf(g) >= 0);`
62
62
  }
63
63
 
64
+ /**
65
+ A view row's `_change` field: the stored value for an exempt caller, null for anyone else.
66
+ Answered from the request step, so the view's data source is never called.
67
+ */
68
+ let rowChangeField = (~field: string, ~elevatedGroups: array<string>): Pulumi.Input.t<string> =>
69
+ `import { util, runtime } from '@aws-appsync/utils';
70
+ export function request(ctx) {${exemptPreamble(~elevatedGroups)}
71
+ const _row = ctx.source;
72
+ return runtime.earlyReturn(_exempt && _row != null && _row['${field}'] != null ? _row['${field}'] : null);
73
+ }
74
+ export function response(ctx) {
75
+ return ctx.result;
76
+ }
77
+ `->Pulumi.Input.make
78
+
64
79
  /**
65
80
  A by-key read's retirement guard: `_live(row)`, true when the caller may see it.
66
81
  The post-read half of what `listAllItemsConnection` pushes into a
@@ -43,6 +43,18 @@ function exemptPreamble(elevatedGroups) {
43
43
  const _exempt = _sub == null || _groups.some(g => _elevated.indexOf(g) >= 0);`;
44
44
  }
45
45
 
46
+ function rowChangeField(field, elevatedGroups) {
47
+ return `import { util, runtime } from '@aws-appsync/utils';
48
+ export function request(ctx) {` + exemptPreamble(elevatedGroups) + `
49
+ const _row = ctx.source;
50
+ return runtime.earlyReturn(_exempt && _row != null && _row['` + field + `'] != null ? _row['` + field + `'] : null);
51
+ }
52
+ export function response(ctx) {
53
+ return ctx.result;
54
+ }
55
+ `;
56
+ }
57
+
46
58
  function retiredGuardPreamble(retiredField, retiredValues, elevatedGroups, ownerScoped) {
47
59
  if (retiredField === undefined) {
48
60
  return "";
@@ -1301,6 +1313,7 @@ export {
1301
1313
  importUtil,
1302
1314
  ownerGuardPreamble,
1303
1315
  exemptPreamble,
1316
+ rowChangeField,
1304
1317
  retiredGuardPreamble,
1305
1318
  ownerFilterClause,
1306
1319
  retiredFilterClause,