openxiangda-contracts 2.91.1 → 2.94.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 (45) hide show
  1. package/dist/browser.d.ts +1 -0
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +1 -0
  4. package/dist/browser.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/multi-organization.d.ts +27 -0
  10. package/dist/multi-organization.d.ts.map +1 -1
  11. package/dist/multi-organization.js +36 -1
  12. package/dist/multi-organization.js.map +1 -1
  13. package/dist/native-compiler/compiler.d.ts.map +1 -1
  14. package/dist/native-compiler/compiler.js +225 -5
  15. package/dist/native-compiler/compiler.js.map +1 -1
  16. package/dist/native-compiler/index.cjs +4 -4
  17. package/dist/native-compiler/index.d.ts +1 -0
  18. package/dist/native-compiler/index.d.ts.map +1 -1
  19. package/dist/native-compiler/index.js +4 -4
  20. package/dist/native-compiler/record-set-guard.d.ts.map +1 -1
  21. package/dist/native-compiler/record-set-guard.js +4 -2
  22. package/dist/native-compiler/record-set-guard.js.map +1 -1
  23. package/dist/native-compiler/transaction-record-assertion.d.ts +4 -0
  24. package/dist/native-compiler/transaction-record-assertion.d.ts.map +1 -0
  25. package/dist/native-compiler/transaction-record-assertion.js +24 -0
  26. package/dist/native-compiler/transaction-record-assertion.js.map +1 -0
  27. package/dist/native-compiler/transaction-time.d.ts +6 -0
  28. package/dist/native-compiler/transaction-time.d.ts.map +1 -0
  29. package/dist/native-compiler/transaction-time.js +16 -0
  30. package/dist/native-compiler/transaction-time.js.map +1 -0
  31. package/dist/native-version.d.ts +3 -0
  32. package/dist/native-version.d.ts.map +1 -1
  33. package/dist/native-version.js +3 -0
  34. package/dist/native-version.js.map +1 -1
  35. package/dist/native.d.ts +57 -1
  36. package/dist/native.d.ts.map +1 -1
  37. package/dist/native.js.map +1 -1
  38. package/dist/schemas.d.ts +1270 -168
  39. package/dist/schemas.d.ts.map +1 -1
  40. package/dist/schemas.js +165 -98
  41. package/dist/schemas.js.map +1 -1
  42. package/dist/types.d.ts +6 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js.map +1 -1
  45. package/package.json +1 -1
package/dist/browser.d.ts CHANGED
@@ -60,4 +60,5 @@ export * from "./native-compiler/workflow-return-eligibility.js";
60
60
  export * from "./native-compiler/workflow-conditional-assignment.js";
61
61
  export * from './multi-organization.js';
62
62
  export * from './native-compiler/organization-authorization.js';
63
+ export * from './native-compiler/transaction-time.js';
63
64
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE3J,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yCAAyC,CAAC;AAExD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAE3J,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yCAAyC,CAAC;AAExD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,uCAAuC,CAAC"}
package/dist/browser.js CHANGED
@@ -59,4 +59,5 @@ export * from "./native-compiler/workflow-return-eligibility.js";
59
59
  export * from "./native-compiler/workflow-conditional-assignment.js";
60
60
  export * from './multi-organization.js';
61
61
  export * from './native-compiler/organization-authorization.js';
62
+ export * from './native-compiler/transaction-time.js';
62
63
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yCAAyC,CAAC;AAExD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kDAAkD,CAAC;AACjE,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AAErD,cAAc,sCAAsC,CAAC;AAErD,cAAc,mDAAmD,CAAC;AAElE,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,wBAAwB,CAAC;AAEvC,cAAc,yCAAyC,CAAC;AAExD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,kDAAkD,CAAC;AAEjE,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,uCAAuC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -70,4 +70,5 @@ export * from "./native-compiler/workflow-conditional-assignment.js";
70
70
  export * from './multi-organization.js';
71
71
  export * from './native-compiler/organization-authorization.js';
72
72
  export * from './workflow-legacy-adoption.js';
73
+ export * from './native-compiler/transaction-time.js';
73
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAClE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sDAAsD,CAAC;AAErE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,sCAAsC,CAAC;AAErD,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAClE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sDAAsD,CAAC;AAErE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,sCAAsC,CAAC;AAErD,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,+BAA+B,CAAC;AAE9C,cAAc,uCAAuC,CAAC"}
package/dist/index.js CHANGED
@@ -70,4 +70,5 @@ export * from "./native-compiler/workflow-conditional-assignment.js";
70
70
  export * from './multi-organization.js';
71
71
  export * from './native-compiler/organization-authorization.js';
72
72
  export * from './workflow-legacy-adoption.js';
73
+ export * from './native-compiler/transaction-time.js';
73
74
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAClE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sDAAsD,CAAC;AAErE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,sCAAsC,CAAC;AAErD,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yDAAyD,CAAC;AACxE,cAAc,qCAAqC,CAAC;AACpD,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,kDAAkD,CAAC;AACjE,cAAc,mDAAmD,CAAC;AAClE,cAAc,sDAAsD,CAAC;AACrE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,mDAAmD,CAAC;AAClE,cAAc,0CAA0C,CAAC;AACzD,cAAc,yCAAyC,CAAC;AACxD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kDAAkD,CAAC;AACjE,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AAEtD,cAAc,sDAAsD,CAAC;AAErE,cAAc,sCAAsC,CAAC;AACrD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AAEzD,cAAc,0BAA0B,CAAC;AACzC,cAAc,wCAAwC,CAAC;AAEvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AAEzD,cAAc,6CAA6C,CAAC;AAE5D,cAAc,sCAAsC,CAAC;AAErD,cAAc,+CAA+C,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,cAAc,yCAAyC,CAAC;AAExD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2CAA2C,CAAC;AAE1D,cAAc,wBAAwB,CAAC;AAEvC,cAAc,sDAAsD,CAAC;AAErE,cAAc,yBAAyB,CAAC;AAExC,cAAc,iDAAiD,CAAC;AAEhE,cAAc,+BAA+B,CAAC;AAE9C,cAAc,uCAAuC,CAAC"}
@@ -49,4 +49,31 @@ export interface PlatformOrganizationSwitchReceipt {
49
49
  organization: Pick<PlatformOrganizationSummary, 'id' | 'corpId' | 'name' | 'providerName' | 'parentId' | 'level' | 'ancestorIds'>;
50
50
  memberships: PlatformOrganizationMembership[];
51
51
  }
52
+ /** Only the current actor's source class facts; IDs are not Native resource references. */
53
+ export interface DirectoryClassSummary {
54
+ directoryClassId: string;
55
+ organizationName: string;
56
+ sourceClassId: string;
57
+ name: string;
58
+ sourceCampusId: string;
59
+ sourcePeriodId: string;
60
+ sourceGradeId: string;
61
+ campusName: string | null;
62
+ periodName: string | null;
63
+ gradeName: string | null;
64
+ roleCodes: Array<'teacher' | 'head_teacher' | 'guardian' | 'student'>;
65
+ }
66
+ export interface DirectoryClassPage {
67
+ schemaVersion: 'openxiangda.directory-class-page/v1';
68
+ organizationId: string;
69
+ userId: string;
70
+ items: DirectoryClassSummary[];
71
+ nextCursor: string | null;
72
+ }
73
+ /** Validate public projections once for Browser and Nest; never accepts raw identity material. */
74
+ export declare function parseDirectoryClassPage(value: unknown, expected?: {
75
+ userId?: string;
76
+ organizationId?: string;
77
+ limit?: number;
78
+ }): DirectoryClassPage;
52
79
  //# sourceMappingURL=multi-organization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-organization.d.ts","sourceRoot":"","sources":["../src/multi-organization.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,WAAW,2BAA2B;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,8BAA8B;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,2BAA2B,CAAC;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,qCAAqC,CAAC;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,iCAAiC;IAChD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,YAAY,EAAE,IAAI,CAAC,2BAA2B,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC;IAClI,WAAW,EAAE,8BAA8B,EAAE,CAAC;CAC/C"}
1
+ {"version":3,"file":"multi-organization.d.ts","sourceRoot":"","sources":["../src/multi-organization.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,37 @@
1
- export {};
1
+ const classUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
2
+ function exactClassObject(value, keys) {
3
+ return !!value && typeof value === 'object' && !Array.isArray(value) &&
4
+ Object.keys(value).length === keys.length && keys.every(key => Object.hasOwn(value, key));
5
+ }
6
+ /** Validate public projections once for Browser and Nest; never accepts raw identity material. */
7
+ export function parseDirectoryClassPage(value, expected = {}) {
8
+ const invalid = () => { throw new Error('OPENXIANGDA_DIRECTORY_CLASSES_RESPONSE_INVALID'); };
9
+ const text = (item) => typeof item === 'string' && !!item && item === item.trim() && item.length <= 255;
10
+ if (!exactClassObject(value, ['schemaVersion', 'organizationId', 'userId', 'items', 'nextCursor']) ||
11
+ value.schemaVersion !== 'openxiangda.directory-class-page/v1' ||
12
+ !text(value.userId) || !text(value.organizationId) || !classUuid.test(value.organizationId) ||
13
+ (expected.userId !== undefined && value.userId !== expected.userId) ||
14
+ (expected.organizationId !== undefined && value.organizationId !== expected.organizationId) ||
15
+ !Array.isArray(value.items) || value.items.length > (expected.limit ?? 200))
16
+ invalid();
17
+ const page = value;
18
+ const ids = new Set(), sources = new Set();
19
+ for (const item of page.items) {
20
+ if (!exactClassObject(item, ['directoryClassId', 'organizationName', 'sourceClassId', 'name', 'sourceCampusId', 'sourcePeriodId', 'sourceGradeId', 'campusName', 'periodName', 'gradeName', 'roleCodes']) ||
21
+ !text(item.directoryClassId) || !classUuid.test(item.directoryClassId) || ids.has(item.directoryClassId.toLowerCase()) ||
22
+ !text(item.sourceClassId) || sources.has(item.sourceClassId) ||
23
+ !['organizationName', 'name', 'sourceCampusId', 'sourcePeriodId', 'sourceGradeId'].every(key => text(item[key])) ||
24
+ !['campusName', 'periodName', 'gradeName'].every(key => item[key] === null || text(item[key])) ||
25
+ !Array.isArray(item.roleCodes) || !item.roleCodes.length || item.roleCodes.length > 4 ||
26
+ new Set(item.roleCodes).size !== item.roleCodes.length ||
27
+ item.roleCodes.some(role => !['teacher', 'head_teacher', 'guardian', 'student'].includes(role)))
28
+ invalid();
29
+ ids.add(item.directoryClassId.toLowerCase());
30
+ sources.add(item.sourceClassId);
31
+ }
32
+ if (page.nextCursor !== null && (!classUuid.test(page.nextCursor) || !page.items.length ||
33
+ page.nextCursor !== page.items[page.items.length - 1]?.directoryClassId))
34
+ invalid();
35
+ return page;
36
+ }
2
37
  //# sourceMappingURL=multi-organization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"multi-organization.js","sourceRoot":"","sources":["../src/multi-organization.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"multi-organization.js","sourceRoot":"","sources":["../src/multi-organization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"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"}
@@ -289,7 +289,7 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
289
289
  'department.single',
290
290
  'department.multiple',
291
291
  ].includes(field.type))) ||
292
- operations.some(operation => operation.platformAccess?.directory || operation.platformAccess?.selectedDepartments);
292
+ operations.some(operation => operation.platformAccess?.directory || operation.platformAccess?.selectedDepartments || operation.platformAccess?.directoryClasses);
293
293
  const usesEvents = Boolean(config.events.subscriptions.length ||
294
294
  config.events.timers.length ||
295
295
  config.events.dateTriggers.length ||
@@ -507,6 +507,9 @@ export function compileRequiredPlatformCapabilitiesV3(config) {
507
507
  declaration: config.authz.directoryRoleSources }] : []),
508
508
  ...(resources.some(resource => resource.organization && resource.organization.mode !== 'none') ? [{ code: 'data.organizations',
509
509
  declaration: resources.filter(resource => resource.organization && resource.organization.mode !== 'none').map(resource => ({ code: resource.code, organization: resource.organization })) }] : []),
510
+ ...(operations.some(operation => operation.platformAccess?.transactionTime) ? [{ code: 'data.transaction-time-values', declaration: operations.filter(operation => operation.platformAccess?.transactionTime).map(operation => ({ code: operation.code, transactionTime: operation.platformAccess.transactionTime })) }] : []),
511
+ ...(operations.some(operation => operation.platformAccess?.transactionTime?.recordSetAssertions) ? [{ code: 'data.record-set-assertions', declaration: operations.filter(operation => operation.platformAccess?.transactionTime?.recordSetAssertions).map(operation => ({ code: operation.code, transactionTime: operation.platformAccess.transactionTime })) }] : []),
512
+ ...(operations.some(operation => operation.platformAccess?.directoryClasses) ? [{ code: 'directory.current-classes', declaration: operations.filter(operation => operation.platformAccess?.directoryClasses).map(operation => ({ code: operation.code, directoryClasses: operation.platformAccess.directoryClasses })) }] : []),
510
513
  ...(operations.some(operation => operation.platformAccess?.selectedDepartments) ? [{ code: 'directory.selected-departments', declaration: operations.filter(operation => operation.platformAccess?.selectedDepartments).map(operation => ({ code: operation.code, selectedDepartments: operation.platformAccess.selectedDepartments })) }] : []),
511
514
  ...(operations.some(operation => operation.platformAccess?.directory?.mode === 'selected-user') ? [{ code: 'directory.selected-user', declaration: operations.filter(operation => operation.platformAccess?.directory?.mode === 'selected-user').map(operation => ({ code: operation.code, directory: operation.platformAccess.directory })) }] : []),
512
515
  ...(initiatorPhoneOperations.length || initiatorPhoneCommands.length ? [{
@@ -1950,7 +1953,7 @@ function validateOperationPlatformAccess(value, pointer, declaredResources, decl
1950
1953
  if (value === undefined)
1951
1954
  return null;
1952
1955
  const access = object(value, pointer);
1953
- exactKeys(access, ['directory', 'selectedDepartments', 'managedFiles', 'managedFileCopies', 'notification', 'workflow', 'roleAssertions', 'decimalReservation', 'dataCommands', 'recordEdit', 'ownedSubject', 'workflowStage', 'dataMutations'], pointer, true);
1956
+ exactKeys(access, ['directory', 'directoryClasses', 'transactionTime', 'selectedDepartments', 'managedFiles', 'managedFileCopies', 'notification', 'workflow', 'roleAssertions', 'decimalReservation', 'dataCommands', 'recordEdit', 'ownedSubject', 'workflowStage', 'dataMutations'], pointer, true);
1954
1957
  if (Object.keys(access).length === 0) {
1955
1958
  fail('NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY', pointer);
1956
1959
  }
@@ -2035,6 +2038,23 @@ function validateOperationPlatformAccess(value, pointer, declaredResources, decl
2035
2038
  fields: uniqueSorted(fields),
2036
2039
  };
2037
2040
  }
2041
+ if (access.transactionTime !== undefined) {
2042
+ const p = `${pointer}/transactionTime`;
2043
+ const entry = object(access.transactionTime, p);
2044
+ exactKeys(entry, ['mode', 'recordSetAssertions'], p, true);
2045
+ if (entry.mode !== 'database-accepted' || access.dataCommands?.mode !== 'recoverable-native' ||
2046
+ (entry.recordSetAssertions !== undefined && entry.recordSetAssertions !== true))
2047
+ fail('NATIVE_OPERATION_TRANSACTION_TIME_INVALID', p);
2048
+ result.transactionTime = { mode: 'database-accepted', ...(entry.recordSetAssertions ? { recordSetAssertions: true } : {}) };
2049
+ }
2050
+ if (access.directoryClasses !== undefined) {
2051
+ const entryPointer = `${pointer}/directoryClasses`;
2052
+ const entry = object(access.directoryClasses, entryPointer);
2053
+ exactKeys(entry, ['maxIds'], entryPointer);
2054
+ if (!Number.isSafeInteger(entry.maxIds) || entry.maxIds < 1 || entry.maxIds > 20)
2055
+ fail('NATIVE_OPERATION_DIRECTORY_CLASSES_INVALID', entryPointer);
2056
+ result.directoryClasses = { maxIds: entry.maxIds };
2057
+ }
2038
2058
  if (access.selectedDepartments !== undefined) {
2039
2059
  const entryPointer = `${pointer}/selectedDepartments`;
2040
2060
  const entry = object(access.selectedDepartments, entryPointer);
@@ -2490,6 +2510,7 @@ const ANONYMOUS_PUBLIC_OPERATIONS = new Set([
2490
2510
  'own.read',
2491
2511
  'public.list',
2492
2512
  'public.read',
2513
+ 'public.query',
2493
2514
  ]);
2494
2515
  function validateAnonymousPublicAccess(value, config, pointer) {
2495
2516
  const access = object(value, pointer);
@@ -2515,6 +2536,7 @@ function validateAnonymousPublicAccess(value, config, pointer) {
2515
2536
  'serverGeneratedFields',
2516
2537
  'schedule',
2517
2538
  'publicSubtableFields',
2539
+ 'publicQueries',
2518
2540
  'draft',
2519
2541
  'validations',
2520
2542
  ]);
@@ -2687,19 +2709,148 @@ function validateAnonymousPublicAccess(value, config, pointer) {
2687
2709
  }
2688
2710
  }
2689
2711
  }
2712
+ const publicRecordFields = Object.prototype.hasOwnProperty.call(policy, 'publicRecordFields')
2713
+ ? uniqueStrings(policy.publicRecordFields, policyPointer + '/publicRecordFields', 64)
2714
+ : [];
2690
2715
  if (operations.some(operation => operation.startsWith('public.'))) {
2691
2716
  if (!Object.prototype.hasOwnProperty.call(policy, 'publicRecordFields')) {
2692
- fail('NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED', `${policyPointer}/publicRecordFields`);
2717
+ fail('NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED', policyPointer + '/publicRecordFields');
2693
2718
  }
2694
- const publicRecordFields = uniqueStrings(policy.publicRecordFields, `${policyPointer}/publicRecordFields`, 64);
2695
2719
  if (publicRecordFields.length < 1 ||
2696
2720
  publicRecordFields.some(field => !fields.includes(field)) ||
2697
2721
  publicRecordFields.some(field => declaredFields.get(field) === 'signature' ||
2698
2722
  (declaredFields.get(field) === 'subtable' &&
2699
2723
  !publicSubtableFields?.[field]))) {
2700
- fail('NATIVE_PUBLIC_RECORD_FIELDS_INVALID', `${policyPointer}/publicRecordFields`);
2724
+ fail('NATIVE_PUBLIC_RECORD_FIELDS_INVALID', policyPointer + '/publicRecordFields');
2701
2725
  }
2702
2726
  }
2727
+ const publicQueries = Object.prototype.hasOwnProperty.call(policy, 'publicQueries')
2728
+ ? boundedArray(policy.publicQueries, policyPointer + '/publicQueries', 16)
2729
+ : [];
2730
+ const queryCodes = new Set();
2731
+ publicQueries.forEach((rawQuery, queryIndex) => {
2732
+ const queryPointer = policyPointer + '/publicQueries/' + queryIndex;
2733
+ const query = object(rawQuery, queryPointer);
2734
+ exactKeys(query, ['code', 'kind', 'resourceCode', 'fields', 'defaultLimit', 'maxLimit'], queryPointer, ['sort', 'parameters', 'aggregate']);
2735
+ const queryCode = stableCode(query.code, queryPointer + '/code');
2736
+ if (queryCodes.has(queryCode)) {
2737
+ fail('NATIVE_PUBLIC_QUERY_DUPLICATE', queryPointer + '/code');
2738
+ }
2739
+ queryCodes.add(queryCode);
2740
+ if (!['records', 'aggregate'].includes(String(query.kind))) {
2741
+ fail('NATIVE_PUBLIC_QUERY_KIND_INVALID', queryPointer + '/kind');
2742
+ }
2743
+ if (String(query.resourceCode) !== declaredResourceCode) {
2744
+ fail('NATIVE_PUBLIC_QUERY_RESOURCE_INVALID', queryPointer + '/resourceCode');
2745
+ }
2746
+ const queryFields = uniqueStrings(query.fields, queryPointer + '/fields', 64);
2747
+ if (queryFields.length < 1 ||
2748
+ queryFields.some(field => !fields.includes(field)) ||
2749
+ queryFields.some(field => !publicRecordFields?.includes(field))) {
2750
+ fail('NATIVE_PUBLIC_QUERY_FIELDS_INVALID', queryPointer + '/fields');
2751
+ }
2752
+ const defaultLimit = Number(query.defaultLimit);
2753
+ const maxLimit = Number(query.maxLimit);
2754
+ if (!Number.isSafeInteger(defaultLimit) ||
2755
+ !Number.isSafeInteger(maxLimit) ||
2756
+ defaultLimit < 1 ||
2757
+ maxLimit < defaultLimit ||
2758
+ maxLimit > 100) {
2759
+ fail('NATIVE_PUBLIC_QUERY_LIMIT_INVALID', queryPointer + '/maxLimit');
2760
+ }
2761
+ if (Object.prototype.hasOwnProperty.call(query, 'sort')) {
2762
+ const sort = boundedArray(query.sort, queryPointer + '/sort', 4);
2763
+ const sortFields = new Set();
2764
+ sort.forEach((rawSort, sortIndex) => {
2765
+ const sortPointer = queryPointer + '/sort/' + sortIndex;
2766
+ const item = object(rawSort, sortPointer);
2767
+ exactKeys(item, ['field', 'direction'], sortPointer);
2768
+ const field = fieldCodeValue(item.field, sortPointer + '/field');
2769
+ if (!queryFields.includes(field) || sortFields.has(field) || !['asc', 'desc'].includes(String(item.direction))) {
2770
+ fail('NATIVE_PUBLIC_QUERY_SORT_INVALID', sortPointer);
2771
+ }
2772
+ sortFields.add(field);
2773
+ });
2774
+ }
2775
+ if (Object.prototype.hasOwnProperty.call(query, 'parameters')) {
2776
+ const parameters = boundedArray(query.parameters, queryPointer + '/parameters', 8);
2777
+ const names = new Set();
2778
+ parameters.forEach((rawParameter, parameterIndex) => {
2779
+ const parameterPointer = queryPointer + '/parameters/' + parameterIndex;
2780
+ const parameter = object(rawParameter, parameterPointer);
2781
+ exactKeys(parameter, ['name', 'field', 'operator', 'type'], parameterPointer);
2782
+ const name = stableCode(parameter.name, parameterPointer + '/name');
2783
+ const field = fieldCodeValue(parameter.field, parameterPointer + '/field');
2784
+ if (names.has(name) ||
2785
+ !queryFields.includes(field) ||
2786
+ !['eq', 'contains', 'in'].includes(String(parameter.operator)) ||
2787
+ !['string', 'number', 'boolean', 'string[]'].includes(String(parameter.type))) {
2788
+ fail('NATIVE_PUBLIC_QUERY_PARAMETER_INVALID', parameterPointer);
2789
+ }
2790
+ names.add(name);
2791
+ });
2792
+ }
2793
+ if (Object.prototype.hasOwnProperty.call(query, 'aggregate')) {
2794
+ if (String(query.kind) !== 'aggregate') {
2795
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_KIND_INVALID', queryPointer + '/aggregate');
2796
+ }
2797
+ const aggregatePointer = queryPointer + '/aggregate';
2798
+ const aggregate = object(query.aggregate, aggregatePointer);
2799
+ exactKeys(aggregate, ['measures'], aggregatePointer, ['dimensions', 'order']);
2800
+ const aliases = new Set();
2801
+ const aggregateAlias = (value, pointer) => {
2802
+ const normalized = String(value || '').trim();
2803
+ if (!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(normalized) || aliases.has(normalized)) {
2804
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_ALIAS_INVALID', pointer);
2805
+ }
2806
+ aliases.add(normalized);
2807
+ return normalized;
2808
+ };
2809
+ const dimensions = Object.prototype.hasOwnProperty.call(aggregate, 'dimensions')
2810
+ ? boundedArray(aggregate.dimensions, aggregatePointer + '/dimensions', 3)
2811
+ : [];
2812
+ dimensions.forEach((rawDimension, dimensionIndex) => {
2813
+ const pointer = `${aggregatePointer}/dimensions/${dimensionIndex}`;
2814
+ const dimension = object(rawDimension, pointer);
2815
+ exactKeys(dimension, ['field', 'as'], pointer, ['bucket']);
2816
+ const field = fieldCodeValue(dimension.field, pointer + '/field');
2817
+ if (!queryFields.includes(field))
2818
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_FIELD_INVALID', pointer + '/field');
2819
+ aggregateAlias(dimension.as, pointer + '/as');
2820
+ if (dimension.bucket !== undefined && !['day', 'week', 'month', 'quarter', 'year'].includes(String(dimension.bucket))) {
2821
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_BUCKET_INVALID', pointer + '/bucket');
2822
+ }
2823
+ });
2824
+ const measures = boundedArray(aggregate.measures, aggregatePointer + '/measures', 8);
2825
+ if (measures.length < 1)
2826
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_MEASURES_INVALID', aggregatePointer + '/measures');
2827
+ measures.forEach((rawMeasure, measureIndex) => {
2828
+ const pointer = `${aggregatePointer}/measures/${measureIndex}`;
2829
+ const measure = object(rawMeasure, pointer);
2830
+ exactKeys(measure, ['type', 'as'], pointer, ['field']);
2831
+ const type = String(measure.type);
2832
+ const field = measure.field === undefined ? undefined : fieldCodeValue(measure.field, pointer + '/field');
2833
+ if (!['count', 'countDistinct', 'sum', 'avg', 'min', 'max'].includes(type) ||
2834
+ (type === 'count' ? field !== undefined : !field || !queryFields.includes(field))) {
2835
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_MEASURE_INVALID', pointer);
2836
+ }
2837
+ aggregateAlias(measure.as, pointer + '/as');
2838
+ });
2839
+ if (Object.prototype.hasOwnProperty.call(aggregate, 'order')) {
2840
+ const order = boundedArray(aggregate.order, aggregatePointer + '/order', 10);
2841
+ order.forEach((rawOrder, orderIndex) => {
2842
+ const pointer = `${aggregatePointer}/order/${orderIndex}`;
2843
+ const item = object(rawOrder, pointer);
2844
+ exactKeys(item, ['field'], pointer, ['direction', 'nulls']);
2845
+ if (!aliases.has(String(item.field)) ||
2846
+ (item.direction !== undefined && !['asc', 'desc'].includes(String(item.direction))) ||
2847
+ (item.nulls !== undefined && !['first', 'last'].includes(String(item.nulls)))) {
2848
+ fail('NATIVE_PUBLIC_QUERY_AGGREGATE_ORDER_INVALID', pointer);
2849
+ }
2850
+ });
2851
+ }
2852
+ }
2853
+ });
2703
2854
  const requiredFields = Object.prototype.hasOwnProperty.call(policy, 'requiredFields')
2704
2855
  ? uniqueStrings(policy.requiredFields, `${policyPointer}/requiredFields`, 64)
2705
2856
  : [];
@@ -2798,6 +2949,75 @@ function compileAnonymousPublicAccess(config) {
2798
2949
  .sort((left, right) => compareText(left.field, right.field)),
2799
2950
  }
2800
2951
  : {}),
2952
+ ...(policy.publicQueries
2953
+ ? {
2954
+ publicQueries: sorted(policy.publicQueries.map((query) => ({
2955
+ code: query.code,
2956
+ kind: query.kind,
2957
+ resourceCode: query.resourceCode,
2958
+ fields: uniqueSorted(query.fields),
2959
+ defaultLimit: Number(query.defaultLimit),
2960
+ maxLimit: Number(query.maxLimit),
2961
+ ...(query.sort
2962
+ ? {
2963
+ sort: query.sort
2964
+ .map((item) => ({
2965
+ field: item.field,
2966
+ direction: item.direction,
2967
+ }))
2968
+ .sort((left, right) => compareText(left.field, right.field)),
2969
+ }
2970
+ : {}),
2971
+ ...(query.parameters
2972
+ ? {
2973
+ parameters: query.parameters
2974
+ .map((parameter) => ({
2975
+ name: parameter.name,
2976
+ field: parameter.field,
2977
+ operator: parameter.operator,
2978
+ type: parameter.type,
2979
+ }))
2980
+ .sort((left, right) => compareText(left.name, right.name)),
2981
+ }
2982
+ : {}),
2983
+ ...(query.aggregate
2984
+ ? {
2985
+ aggregate: {
2986
+ ...(query.aggregate.dimensions
2987
+ ? {
2988
+ dimensions: query.aggregate.dimensions
2989
+ .map((dimension) => ({
2990
+ field: dimension.field,
2991
+ as: dimension.as,
2992
+ ...(dimension.bucket ? { bucket: dimension.bucket } : {}),
2993
+ }))
2994
+ .sort((left, right) => left.as.localeCompare(right.as)),
2995
+ }
2996
+ : {}),
2997
+ measures: query.aggregate.measures
2998
+ .map((measure) => ({
2999
+ type: measure.type,
3000
+ ...(measure.field ? { field: measure.field } : {}),
3001
+ as: measure.as,
3002
+ }))
3003
+ .sort((left, right) => left.as.localeCompare(right.as)),
3004
+ ...(query.aggregate.order
3005
+ ? {
3006
+ order: query.aggregate.order
3007
+ .map((item) => ({
3008
+ field: item.field,
3009
+ ...(item.direction ? { direction: item.direction } : {}),
3010
+ ...(item.nulls ? { nulls: item.nulls } : {}),
3011
+ }))
3012
+ .sort((left, right) => left.field.localeCompare(right.field)),
3013
+ }
3014
+ : {}),
3015
+ },
3016
+ }
3017
+ : {}),
3018
+ })), (query) => String(query.code)),
3019
+ }
3020
+ : {}),
2801
3021
  ...(policy.publicSubtableFields
2802
3022
  ? {
2803
3023
  publicSubtableFields: Object.fromEntries(Object.entries(policy.publicSubtableFields)