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.
- package/dist/browser.d.ts +1 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +1 -0
- package/dist/browser.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/multi-organization.d.ts +27 -0
- package/dist/multi-organization.d.ts.map +1 -1
- package/dist/multi-organization.js +36 -1
- package/dist/multi-organization.js.map +1 -1
- package/dist/native-compiler/compiler.d.ts.map +1 -1
- package/dist/native-compiler/compiler.js +225 -5
- package/dist/native-compiler/compiler.js.map +1 -1
- package/dist/native-compiler/index.cjs +4 -4
- package/dist/native-compiler/index.d.ts +1 -0
- package/dist/native-compiler/index.d.ts.map +1 -1
- package/dist/native-compiler/index.js +4 -4
- package/dist/native-compiler/record-set-guard.d.ts.map +1 -1
- package/dist/native-compiler/record-set-guard.js +4 -2
- package/dist/native-compiler/record-set-guard.js.map +1 -1
- package/dist/native-compiler/transaction-record-assertion.d.ts +4 -0
- package/dist/native-compiler/transaction-record-assertion.d.ts.map +1 -0
- package/dist/native-compiler/transaction-record-assertion.js +24 -0
- package/dist/native-compiler/transaction-record-assertion.js.map +1 -0
- package/dist/native-compiler/transaction-time.d.ts +6 -0
- package/dist/native-compiler/transaction-time.d.ts.map +1 -0
- package/dist/native-compiler/transaction-time.js +16 -0
- package/dist/native-compiler/transaction-time.js.map +1 -0
- package/dist/native-version.d.ts +3 -0
- package/dist/native-version.d.ts.map +1 -1
- package/dist/native-version.js +3 -0
- package/dist/native-version.js.map +1 -1
- package/dist/native.d.ts +57 -1
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/schemas.d.ts +1270 -168
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +165 -98
- package/dist/schemas.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- 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
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -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
|
package/dist/browser.js.map
CHANGED
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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":"AAgDA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AA2BrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAiF3E,OAAO,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAE9K,OAAO,EAAE,2BAA2B,EAAE,wCAAwC,EAAE,mCAAmC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE1N,eAAO,MAAM,mBAAmB,6HAItB,CAAC;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,UAAU;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,uBAAuB,EAAE,OAAO,yBAAyB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,6BAA6B,CAAC;QACrC,IAAI,EAAE,6BAA6B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;QACtC,SAAS,EAAE,6BAA6B,CAAC;QACzC,OAAO,EAAE,6BAA6B,CAAC;QACvC,SAAS,EAAE,6BAA6B,CAAC;KAC1C,CAAC;IACF,4BAA4B,EAAE,uCAAuC,EAAE,CAAC;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAY5C;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,gCAAgC,GACtC,iCAAiC,CA2JnC;AAaD,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,GACjB,uCAAuC,EAAE,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/native-compiler/compiler.ts"],"names":[],"mappings":"AAgDA,OAAO,EAEL,KAAK,kCAAkC,IAAI,uCAAuC,EACnF,MAAM,aAAa,CAAC;AA2BrB,QAAA,MAAM,iBAAiB,mDAAmD,CAAC;AAC3E,QAAA,MAAM,yBAAyB,YAA2C,CAAC;AAiF3E,OAAO,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAE9K,OAAO,EAAE,2BAA2B,EAAE,wCAAwC,EAAE,mCAAmC,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,MAAM,wBAAwB,CAAC;AAE1N,eAAO,MAAM,mBAAmB,6HAItB,CAAC;AACX,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAI/D,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEtC,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,6BAA6B,CAAC,CAAC,GAAG,UAAU;IAC3D,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,aAAa,EAAE,OAAO,iBAAiB,CAAC;IACxC,uBAAuB,EAAE,OAAO,yBAAyB,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,6BAA6B,CAAC;QACrC,IAAI,EAAE,6BAA6B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;QACtC,SAAS,EAAE,6BAA6B,CAAC;QACzC,OAAO,EAAE,6BAA6B,CAAC;QACvC,SAAS,EAAE,6BAA6B,CAAC;KAC1C,CAAC;IACF,4BAA4B,EAAE,uCAAuC,EAAE,CAAC;IACxE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAG3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAY5C;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,gCAAgC,GACtC,iCAAiC,CA2JnC;AAaD,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,UAAU,GACjB,uCAAuC,EAAE,CAgiB3C;AAED,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,UAAU,EAAE,CAAC;CAChC,GAAG,wBAAwB,EAAE,CAgK7B"}
|
|
@@ -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',
|
|
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',
|
|
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)
|