@magda/typescript-common 1.1.0-arm64.0 → 1.2.0-alpha.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 (252) hide show
  1. package/dist/AspectBuilder.d.ts +7 -0
  2. package/dist/AspectBuilder.js +3 -0
  3. package/dist/AspectBuilder.js.map +1 -0
  4. package/dist/AspectCreationFailure.d.ts +5 -0
  5. package/dist/AspectCreationFailure.js +10 -0
  6. package/dist/AspectCreationFailure.js.map +1 -0
  7. package/dist/AsyncPage.d.ts +18 -0
  8. package/dist/AsyncPage.js +140 -0
  9. package/dist/AsyncPage.js.map +1 -0
  10. package/dist/ConnectionResult.d.ts +16 -0
  11. package/dist/ConnectionResult.js +77 -0
  12. package/dist/ConnectionResult.js.map +1 -0
  13. package/dist/ConnectorRecordId.d.ts +15 -0
  14. package/dist/ConnectorRecordId.js +46 -0
  15. package/dist/ConnectorRecordId.js.map +1 -0
  16. package/dist/JsonConnector.d.ts +195 -0
  17. package/dist/JsonConnector.js +427 -0
  18. package/dist/JsonConnector.js.map +1 -0
  19. package/dist/JsonTransformer.d.ts +112 -0
  20. package/dist/JsonTransformer.js +225 -0
  21. package/dist/JsonTransformer.js.map +1 -0
  22. package/dist/OpaCompileResponseParser.d.ts +480 -0
  23. package/dist/OpaCompileResponseParser.js +1134 -0
  24. package/dist/OpaCompileResponseParser.js.map +1 -0
  25. package/dist/RecordCreationFailure.d.ts +7 -0
  26. package/dist/RecordCreationFailure.js +11 -0
  27. package/dist/RecordCreationFailure.js.map +1 -0
  28. package/dist/SimpleOpaSQLTranslator.d.ts +14 -0
  29. package/dist/SimpleOpaSQLTranslator.js +79 -0
  30. package/dist/SimpleOpaSQLTranslator.js.map +1 -0
  31. package/dist/addTrailingSlash.d.ts +1 -0
  32. package/dist/addTrailingSlash.js +15 -0
  33. package/dist/addTrailingSlash.js.map +1 -0
  34. package/dist/appendUrlSegments.d.ts +2 -0
  35. package/dist/appendUrlSegments.js +18 -0
  36. package/dist/appendUrlSegments.js.map +1 -0
  37. package/dist/authorization-api/AccessControlError.d.ts +4 -0
  38. package/dist/authorization-api/AccessControlError.js +13 -0
  39. package/dist/authorization-api/AccessControlError.js.map +1 -0
  40. package/dist/authorization-api/ApiClient.d.ts +141 -0
  41. package/dist/authorization-api/ApiClient.js +335 -0
  42. package/dist/authorization-api/ApiClient.js.map +1 -0
  43. package/dist/authorization-api/AuthError.d.ts +4 -0
  44. package/dist/authorization-api/AuthError.js +13 -0
  45. package/dist/authorization-api/AuthError.js.map +1 -0
  46. package/dist/authorization-api/GenericError.d.ts +9 -0
  47. package/dist/authorization-api/GenericError.js +17 -0
  48. package/dist/authorization-api/GenericError.js.map +1 -0
  49. package/dist/authorization-api/authMiddleware.d.ts +7 -0
  50. package/dist/authorization-api/authMiddleware.js +52 -0
  51. package/dist/authorization-api/authMiddleware.js.map +1 -0
  52. package/dist/authorization-api/model.d.ts +99 -0
  53. package/dist/authorization-api/model.js +3 -0
  54. package/dist/authorization-api/model.js.map +1 -0
  55. package/dist/coerceJson.d.ts +2 -0
  56. package/dist/coerceJson.js +13 -0
  57. package/dist/coerceJson.js.map +1 -0
  58. package/dist/createServiceError.d.ts +19 -0
  59. package/dist/createServiceError.js +45 -0
  60. package/dist/createServiceError.js.map +1 -0
  61. package/dist/delay.d.ts +2 -0
  62. package/dist/delay.js +9 -0
  63. package/dist/delay.js.map +1 -0
  64. package/dist/express/status.d.ts +30 -0
  65. package/dist/express/status.js +180 -0
  66. package/dist/express/status.js.map +1 -0
  67. package/dist/formatServiceError.d.ts +1 -0
  68. package/dist/formatServiceError.js +23 -0
  69. package/dist/formatServiceError.js.map +1 -0
  70. package/dist/generated/registry/api.d.ts +596 -0
  71. package/dist/generated/registry/api.js +2060 -0
  72. package/dist/generated/registry/api.js.map +1 -0
  73. package/dist/getAbsoluteUrl.d.ts +12 -0
  74. package/dist/getAbsoluteUrl.js +35 -0
  75. package/dist/getAbsoluteUrl.js.map +1 -0
  76. package/dist/getBasePathFromUrl.d.ts +10 -0
  77. package/dist/getBasePathFromUrl.js +27 -0
  78. package/dist/getBasePathFromUrl.js.map +1 -0
  79. package/dist/markdownToHtml.d.ts +3 -0
  80. package/dist/markdownToHtml.js +38 -0
  81. package/dist/markdownToHtml.js.map +1 -0
  82. package/dist/opa/OpaTypes.d.ts +41 -0
  83. package/dist/opa/OpaTypes.js +3 -0
  84. package/dist/opa/OpaTypes.js.map +1 -0
  85. package/dist/opa/getAuthDecision.d.ts +19 -0
  86. package/dist/opa/getAuthDecision.js +94 -0
  87. package/dist/opa/getAuthDecision.js.map +1 -0
  88. package/dist/opa/queryOpa.d.ts +1 -0
  89. package/dist/opa/queryOpa.js +41 -0
  90. package/dist/opa/queryOpa.js.map +1 -0
  91. package/dist/registry/AuthorizedRegistryClient.d.ts +29 -0
  92. package/dist/registry/AuthorizedRegistryClient.js +115 -0
  93. package/dist/registry/AuthorizedRegistryClient.js.map +1 -0
  94. package/dist/registry/RegistryClient.d.ts +36 -0
  95. package/dist/registry/RegistryClient.js +59 -0
  96. package/dist/registry/RegistryClient.js.map +1 -0
  97. package/dist/registry/TenantConsts.d.ts +31 -0
  98. package/dist/registry/TenantConsts.js +35 -0
  99. package/dist/registry/TenantConsts.js.map +1 -0
  100. package/dist/registry-manual/api.d.ts +9 -0
  101. package/dist/registry-manual/api.js +10 -0
  102. package/dist/registry-manual/api.js.map +1 -0
  103. package/dist/request.d.ts +3 -0
  104. package/dist/request.js +19 -0
  105. package/dist/request.js.map +1 -0
  106. package/dist/retry.d.ts +1 -0
  107. package/dist/retry.js +21 -0
  108. package/dist/retry.js.map +1 -0
  109. package/dist/retryBackoff.d.ts +1 -0
  110. package/dist/retryBackoff.js +21 -0
  111. package/dist/retryBackoff.js.map +1 -0
  112. package/dist/runLater.d.ts +1 -0
  113. package/dist/runLater.js +16 -0
  114. package/dist/runLater.js.map +1 -0
  115. package/dist/session/GetUserId.d.ts +5 -0
  116. package/dist/session/GetUserId.js +41 -0
  117. package/dist/session/GetUserId.js.map +1 -0
  118. package/dist/session/GetUserSession.d.ts +3 -0
  119. package/dist/session/GetUserSession.js +22 -0
  120. package/dist/session/GetUserSession.js.map +1 -0
  121. package/dist/session/addJwtSecretFromEnvVar.d.ts +14 -0
  122. package/dist/session/addJwtSecretFromEnvVar.js +23 -0
  123. package/dist/session/addJwtSecretFromEnvVar.js.map +1 -0
  124. package/dist/session/buildJwt.d.ts +1 -0
  125. package/dist/session/buildJwt.js +8 -0
  126. package/dist/session/buildJwt.js.map +1 -0
  127. package/dist/session/cookieUtils.d.ts +16 -0
  128. package/dist/session/cookieUtils.js +19 -0
  129. package/dist/session/cookieUtils.js.map +1 -0
  130. package/dist/session/destroySession.d.ts +10 -0
  131. package/dist/session/destroySession.js +44 -0
  132. package/dist/session/destroySession.js.map +1 -0
  133. package/dist/session/getSessionId.d.ts +2 -0
  134. package/dist/session/getSessionId.js +28 -0
  135. package/dist/session/getSessionId.js.map +1 -0
  136. package/dist/tenant-api/AuthorizedTenantClient.d.ts +25 -0
  137. package/dist/tenant-api/AuthorizedTenantClient.js +61 -0
  138. package/dist/tenant-api/AuthorizedTenantClient.js.map +1 -0
  139. package/dist/tenant-api/Tenant.d.ts +17 -0
  140. package/dist/tenant-api/Tenant.js +10 -0
  141. package/dist/tenant-api/Tenant.js.map +1 -0
  142. package/dist/test/JsonConnector.spec.d.ts +1 -0
  143. package/dist/test/JsonConnector.spec.js +352 -0
  144. package/dist/test/JsonConnector.spec.js.map +1 -0
  145. package/dist/test/JsonTransformer.spec.d.ts +1 -0
  146. package/dist/test/JsonTransformer.spec.js +98 -0
  147. package/dist/test/JsonTransformer.spec.js.map +1 -0
  148. package/dist/test/arbitraries.d.ts +98 -0
  149. package/dist/test/arbitraries.js +264 -0
  150. package/dist/test/arbitraries.js.map +1 -0
  151. package/dist/test/aspect-templates/organization-details.d.ts +4 -0
  152. package/dist/test/aspect-templates/organization-details.js +11 -0
  153. package/dist/test/aspect-templates/organization-details.js.map +1 -0
  154. package/dist/test/buildApiClient.spec.d.ts +1 -0
  155. package/dist/test/buildApiClient.spec.js +177 -0
  156. package/dist/test/buildApiClient.spec.js.map +1 -0
  157. package/dist/test/buildAuthorizedTenantClient.spec.d.ts +1 -0
  158. package/dist/test/buildAuthorizedTenantClient.spec.js +60 -0
  159. package/dist/test/buildAuthorizedTenantClient.spec.js.map +1 -0
  160. package/dist/test/connectors/MockExpressServer.d.ts +5 -0
  161. package/dist/test/connectors/MockExpressServer.js +28 -0
  162. package/dist/test/connectors/MockExpressServer.js.map +1 -0
  163. package/dist/test/connectors/MockRegistry.d.ts +7 -0
  164. package/dist/test/connectors/MockRegistry.js +93 -0
  165. package/dist/test/connectors/MockRegistry.js.map +1 -0
  166. package/dist/test/connectors/runConnectorTest.d.ts +5 -0
  167. package/dist/test/connectors/runConnectorTest.js +106 -0
  168. package/dist/test/connectors/runConnectorTest.js.map +1 -0
  169. package/dist/test/db/getTestDBConfig.d.ts +7 -0
  170. package/dist/test/db/getTestDBConfig.js +13 -0
  171. package/dist/test/db/getTestDBConfig.js.map +1 -0
  172. package/dist/test/db/runMigrationSql.d.ts +9 -0
  173. package/dist/test/db/runMigrationSql.js +82 -0
  174. package/dist/test/db/runMigrationSql.js.map +1 -0
  175. package/dist/test/express/status.spec.d.ts +1 -0
  176. package/dist/test/express/status.spec.js +160 -0
  177. package/dist/test/express/status.spec.js.map +1 -0
  178. package/dist/test/fakeArgv.d.ts +2 -0
  179. package/dist/test/fakeArgv.js +7 -0
  180. package/dist/test/fakeArgv.js.map +1 -0
  181. package/dist/test/getAuthDecision.spec.d.ts +1 -0
  182. package/dist/test/getAuthDecision.spec.js +22 -0
  183. package/dist/test/getAuthDecision.spec.js.map +1 -0
  184. package/dist/test/getBasePathFromUrl.spec.d.ts +1 -0
  185. package/dist/test/getBasePathFromUrl.spec.js +25 -0
  186. package/dist/test/getBasePathFromUrl.spec.js.map +1 -0
  187. package/dist/test/jsverify.d.ts +2 -0
  188. package/dist/test/jsverify.js +8 -0
  189. package/dist/test/jsverify.js.map +1 -0
  190. package/dist/test/mockAuthApiHost.d.ts +14 -0
  191. package/dist/test/mockAuthApiHost.js +174 -0
  192. package/dist/test/mockAuthApiHost.js.map +1 -0
  193. package/dist/test/mockAuthorization.d.ts +3 -0
  194. package/dist/test/mockAuthorization.js +24 -0
  195. package/dist/test/mockAuthorization.js.map +1 -0
  196. package/dist/test/mockTenantDataStore.d.ts +8 -0
  197. package/dist/test/mockTenantDataStore.js +41 -0
  198. package/dist/test/mockTenantDataStore.js.map +1 -0
  199. package/dist/test/mockUserDataStore.d.ts +11 -0
  200. package/dist/test/mockUserDataStore.js +56 -0
  201. package/dist/test/mockUserDataStore.js.map +1 -0
  202. package/dist/test/registry/buildAuthorizedClient.spec.d.ts +1 -0
  203. package/dist/test/registry/buildAuthorizedClient.spec.js +101 -0
  204. package/dist/test/registry/buildAuthorizedClient.spec.js.map +1 -0
  205. package/dist/test/sampleOpaResponse.json +480 -0
  206. package/dist/test/sampleOpaResponseSimple.json +173 -0
  207. package/dist/test/sampleOpaResponseUnconditionalTrue.json +193 -0
  208. package/dist/test/sampleOpaResponseUnconditionalTrueWithDefaultRule.json +303 -0
  209. package/dist/test/sampleOpaResponseWithDefaultRule.json +303 -0
  210. package/dist/test/session/buildJwt.spec.d.ts +1 -0
  211. package/dist/test/session/buildJwt.spec.js +50 -0
  212. package/dist/test/session/buildJwt.spec.js.map +1 -0
  213. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.d.ts +1 -0
  214. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js +64 -0
  215. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsAndOwnerTest.spec.js.map +1 -0
  216. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.d.ts +1 -0
  217. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js +52 -0
  218. package/dist/test/session/buildJwtForRegistryEsriOpaGroupsTest.spec.js.map +1 -0
  219. package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.d.ts +1 -0
  220. package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js +36 -0
  221. package/dist/test/session/buildJwtForRegistryEsriOpaOwnerTest.spec.js.map +1 -0
  222. package/dist/test/testAsyncPage.spec.d.ts +1 -0
  223. package/dist/test/testAsyncPage.spec.js +463 -0
  224. package/dist/test/testAsyncPage.spec.js.map +1 -0
  225. package/dist/test/testOpaCompileResponseParser.spec.d.ts +1 -0
  226. package/dist/test/testOpaCompileResponseParser.spec.js +148 -0
  227. package/dist/test/testOpaCompileResponseParser.spec.js.map +1 -0
  228. package/dist/test/util.d.ts +1 -0
  229. package/dist/test/util.js +8 -0
  230. package/dist/test/util.js.map +1 -0
  231. package/dist/util/arrayToMaybe.d.ts +2 -0
  232. package/dist/util/arrayToMaybe.js +8 -0
  233. package/dist/util/arrayToMaybe.js.map +1 -0
  234. package/dist/util/cleanOrgTitle.d.ts +1 -0
  235. package/dist/util/cleanOrgTitle.js +13 -0
  236. package/dist/util/cleanOrgTitle.js.map +1 -0
  237. package/dist/util/escapeRegExp.d.ts +2 -0
  238. package/dist/util/escapeRegExp.js +5 -0
  239. package/dist/util/escapeRegExp.js.map +1 -0
  240. package/dist/util/getMinikubeIP.d.ts +1 -0
  241. package/dist/util/getMinikubeIP.js +13 -0
  242. package/dist/util/getMinikubeIP.js.map +1 -0
  243. package/dist/util/isUuid.d.ts +2 -0
  244. package/dist/util/isUuid.js +6 -0
  245. package/dist/util/isUuid.js.map +1 -0
  246. package/dist/util/unionToThrowable.d.ts +1 -0
  247. package/dist/util/unionToThrowable.js +12 -0
  248. package/dist/util/unionToThrowable.js.map +1 -0
  249. package/dist/utilityTypes.d.ts +1 -0
  250. package/dist/utilityTypes.js +3 -0
  251. package/dist/utilityTypes.js.map +1 -0
  252. package/package.json +3 -3
@@ -0,0 +1,463 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const chai_1 = require("chai");
23
+ const AsyncPage_1 = __importStar(require("../AsyncPage"));
24
+ require("mocha");
25
+ describe("AsyncPage", function () {
26
+ describe("single", function () {
27
+ it("can be iterated", function () {
28
+ const o = {};
29
+ const page = AsyncPage_1.default.single(o);
30
+ let calls = 0;
31
+ return page
32
+ .forEach((item) => {
33
+ ++calls;
34
+ chai_1.expect(calls).to.equal(1);
35
+ chai_1.expect(item).to.equal(o);
36
+ })
37
+ .then(() => {
38
+ chai_1.expect(calls).to.equal(1);
39
+ });
40
+ });
41
+ it("can be mapped", function () {
42
+ const value = 1;
43
+ const page = AsyncPage_1.default.single(value).map((v) => v + 1);
44
+ let calls = 0;
45
+ return page
46
+ .forEach((item) => {
47
+ ++calls;
48
+ chai_1.expect(calls).to.equal(1);
49
+ chai_1.expect(item).to.equal(2);
50
+ })
51
+ .then(() => {
52
+ chai_1.expect(calls).to.equal(1);
53
+ });
54
+ });
55
+ it("can take 0", function () {
56
+ const value = {};
57
+ const page = AsyncPage_1.default.single(value).take(0);
58
+ let calls = 0;
59
+ return page
60
+ .forEach((item) => {
61
+ ++calls;
62
+ })
63
+ .then(() => {
64
+ chai_1.expect(calls).to.equal(0);
65
+ });
66
+ });
67
+ it("can take 1", function () {
68
+ const value = {};
69
+ const page = AsyncPage_1.default.single(value).take(1);
70
+ let calls = 0;
71
+ return page
72
+ .forEach((item) => {
73
+ ++calls;
74
+ chai_1.expect(calls).to.equal(1);
75
+ chai_1.expect(item).to.equal(value);
76
+ })
77
+ .then(() => {
78
+ chai_1.expect(calls).to.equal(1);
79
+ });
80
+ });
81
+ it("can take 2", function () {
82
+ const value = {};
83
+ const page = AsyncPage_1.default.single(value).take(2);
84
+ let calls = 0;
85
+ return page
86
+ .forEach((item) => {
87
+ ++calls;
88
+ chai_1.expect(calls).to.equal(1);
89
+ chai_1.expect(item).to.equal(value);
90
+ })
91
+ .then(() => {
92
+ chai_1.expect(calls).to.equal(1);
93
+ });
94
+ });
95
+ });
96
+ describe("none", function () {
97
+ it("can be iterated", function () {
98
+ return AsyncPage_1.default.none().forEach((item) => {
99
+ chai_1.expect.fail("no items", "an item");
100
+ });
101
+ });
102
+ it("can be mapped", function () {
103
+ const page = AsyncPage_1.default.none().map((v) => v + 1);
104
+ return page.forEach((item) => {
105
+ chai_1.expect.fail("no items", "an item");
106
+ });
107
+ });
108
+ it("can take 0", function () {
109
+ const page = AsyncPage_1.default.none().take(0);
110
+ let calls = 0;
111
+ return page
112
+ .forEach((item) => {
113
+ ++calls;
114
+ })
115
+ .then(() => {
116
+ chai_1.expect(calls).to.equal(0);
117
+ });
118
+ });
119
+ it("can take 1", function () {
120
+ const page = AsyncPage_1.default.none().take(1);
121
+ let calls = 0;
122
+ return page
123
+ .forEach((item) => {
124
+ ++calls;
125
+ })
126
+ .then(() => {
127
+ chai_1.expect(calls).to.equal(0);
128
+ });
129
+ });
130
+ it("can take 2", function () {
131
+ const page = AsyncPage_1.default.none().take(2);
132
+ let calls = 0;
133
+ return page
134
+ .forEach((item) => {
135
+ ++calls;
136
+ })
137
+ .then(() => {
138
+ chai_1.expect(calls).to.equal(0);
139
+ });
140
+ });
141
+ });
142
+ describe("singlePromise", function () {
143
+ it("can be iterated", function () {
144
+ const o = {};
145
+ const page = AsyncPage_1.default.singlePromise(new Promise((resolve, reject) => {
146
+ resolve(o);
147
+ }));
148
+ let calls = 0;
149
+ return page
150
+ .forEach((item) => {
151
+ ++calls;
152
+ chai_1.expect(calls).to.equal(1);
153
+ chai_1.expect(item).to.equal(o);
154
+ })
155
+ .then(() => {
156
+ chai_1.expect(calls).to.equal(1);
157
+ });
158
+ });
159
+ it("can be mapped", function () {
160
+ const value = 1;
161
+ const page = AsyncPage_1.default.singlePromise(new Promise((resolve, reject) => {
162
+ resolve(value);
163
+ }));
164
+ const mapped = page.map((v) => v + 1);
165
+ let calls = 0;
166
+ return mapped
167
+ .forEach((item) => {
168
+ ++calls;
169
+ chai_1.expect(calls).to.equal(1);
170
+ chai_1.expect(item).to.equal(2);
171
+ })
172
+ .then(() => {
173
+ chai_1.expect(calls).to.equal(1);
174
+ });
175
+ });
176
+ it("can take 0", function () {
177
+ const o = {};
178
+ const page = AsyncPage_1.default.singlePromise(new Promise((resolve, reject) => {
179
+ resolve(o);
180
+ })).take(0);
181
+ let calls = 0;
182
+ return page
183
+ .forEach((item) => {
184
+ ++calls;
185
+ })
186
+ .then(() => {
187
+ chai_1.expect(calls).to.equal(0);
188
+ });
189
+ });
190
+ it("can take 1", function () {
191
+ const o = {};
192
+ const page = AsyncPage_1.default.singlePromise(new Promise((resolve, reject) => {
193
+ resolve(o);
194
+ })).take(1);
195
+ let calls = 0;
196
+ return page
197
+ .forEach((item) => {
198
+ ++calls;
199
+ chai_1.expect(calls).to.equal(1);
200
+ chai_1.expect(item).to.equal(o);
201
+ })
202
+ .then(() => {
203
+ chai_1.expect(calls).to.equal(1);
204
+ });
205
+ });
206
+ it("can take 2", function () {
207
+ const o = {};
208
+ const page = AsyncPage_1.default.singlePromise(new Promise((resolve, reject) => {
209
+ resolve(o);
210
+ })).take(2);
211
+ let calls = 0;
212
+ return page
213
+ .forEach((item) => {
214
+ ++calls;
215
+ chai_1.expect(calls).to.equal(1);
216
+ chai_1.expect(item).to.equal(o);
217
+ })
218
+ .then(() => {
219
+ chai_1.expect(calls).to.equal(1);
220
+ });
221
+ });
222
+ });
223
+ describe("create", function () {
224
+ it("can be iterated", function () {
225
+ let selectorCalls = 0;
226
+ const page = AsyncPage_1.default.create((value) => {
227
+ ++selectorCalls;
228
+ if (value === undefined) {
229
+ return Promise.resolve(0);
230
+ }
231
+ else if (value < 10) {
232
+ return Promise.resolve(value + 1);
233
+ }
234
+ else {
235
+ return undefined;
236
+ }
237
+ });
238
+ let calls = 0;
239
+ return page
240
+ .forEach((item) => {
241
+ chai_1.expect(item).to.equal(calls);
242
+ ++calls;
243
+ })
244
+ .then(() => {
245
+ chai_1.expect(calls).to.equal(11);
246
+ chai_1.expect(selectorCalls).to.equal(12);
247
+ });
248
+ });
249
+ it("can be mapped", function () {
250
+ const page = AsyncPage_1.default.create((value) => {
251
+ if (value === undefined) {
252
+ return Promise.resolve(0);
253
+ }
254
+ else if (value < 10) {
255
+ return Promise.resolve(value + 1);
256
+ }
257
+ else {
258
+ return undefined;
259
+ }
260
+ });
261
+ const mapped = page.map((v) => v + 1);
262
+ let calls = 0;
263
+ return mapped
264
+ .forEach((item) => {
265
+ chai_1.expect(item).to.equal(calls + 1);
266
+ ++calls;
267
+ })
268
+ .then(() => {
269
+ chai_1.expect(calls).to.equal(11);
270
+ });
271
+ });
272
+ it("can take 0", function () {
273
+ const page = AsyncPage_1.default.create((value) => {
274
+ if (value === undefined) {
275
+ return Promise.resolve(0);
276
+ }
277
+ else if (value < 10) {
278
+ return Promise.resolve(value + 1);
279
+ }
280
+ else {
281
+ return undefined;
282
+ }
283
+ }).take(0);
284
+ let calls = 0;
285
+ return page
286
+ .forEach((item) => {
287
+ ++calls;
288
+ })
289
+ .then(() => {
290
+ chai_1.expect(calls).to.equal(0);
291
+ });
292
+ });
293
+ it("can take 1", function () {
294
+ let selectorCalls = 0;
295
+ const page = AsyncPage_1.default.create((value) => {
296
+ ++selectorCalls;
297
+ if (value === undefined) {
298
+ return Promise.resolve(0);
299
+ }
300
+ else if (value < 10) {
301
+ return Promise.resolve(value + 1);
302
+ }
303
+ else {
304
+ return undefined;
305
+ }
306
+ }).take(1);
307
+ let calls = 0;
308
+ return page
309
+ .forEach((item) => {
310
+ chai_1.expect(item).to.equal(calls);
311
+ ++calls;
312
+ })
313
+ .then(() => {
314
+ chai_1.expect(calls).to.equal(1);
315
+ chai_1.expect(selectorCalls).to.equal(2);
316
+ });
317
+ });
318
+ it("can take 2", function () {
319
+ let selectorCalls = 0;
320
+ const page = AsyncPage_1.default.create((value) => {
321
+ ++selectorCalls;
322
+ if (value === undefined) {
323
+ return Promise.resolve(0);
324
+ }
325
+ else if (value < 10) {
326
+ return Promise.resolve(value + 1);
327
+ }
328
+ else {
329
+ return undefined;
330
+ }
331
+ }).take(2);
332
+ let calls = 0;
333
+ return page
334
+ .forEach((item) => {
335
+ chai_1.expect(item).to.equal(calls);
336
+ ++calls;
337
+ })
338
+ .then(() => {
339
+ chai_1.expect(calls).to.equal(2);
340
+ chai_1.expect(selectorCalls).to.equal(3);
341
+ });
342
+ });
343
+ });
344
+ describe("forEachAsync", function () {
345
+ it("works with AsyncPage.none", function () {
346
+ return AsyncPage_1.forEachAsync(AsyncPage_1.default.none(), 6, function (value) {
347
+ chai_1.expect.fail("no items", "an item");
348
+ return Promise.resolve();
349
+ });
350
+ });
351
+ it("works with AsyncPage.single and an empty array", function () {
352
+ return AsyncPage_1.forEachAsync(AsyncPage_1.default.single([]), 6, function (value) {
353
+ chai_1.expect.fail("no items", "an item");
354
+ return Promise.resolve();
355
+ });
356
+ });
357
+ it("works with AsyncPage.single and a non-empty array", function () {
358
+ let calls = 0;
359
+ return AsyncPage_1.forEachAsync(AsyncPage_1.default.single([4]), 6, function (value) {
360
+ ++calls;
361
+ chai_1.expect(value).to.equal(4);
362
+ return Promise.resolve();
363
+ }).then(function () {
364
+ chai_1.expect(calls).to.equal(1);
365
+ });
366
+ });
367
+ it("works with AsyncPage.singlePromise and a non-empty array", function () {
368
+ let calls = 0;
369
+ return AsyncPage_1.forEachAsync(AsyncPage_1.default.singlePromise(Promise.resolve([4])), 6, function (value) {
370
+ ++calls;
371
+ chai_1.expect(value).to.equal(4);
372
+ return Promise.resolve();
373
+ }).then(function () {
374
+ chai_1.expect(calls).to.equal(1);
375
+ });
376
+ });
377
+ it("works with multiple pages of arrays", function () {
378
+ const pages = [
379
+ { page: 0, values: [1, 2] },
380
+ { page: 1, values: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12] },
381
+ { page: 2, values: [13, 14] }
382
+ ];
383
+ const pager = AsyncPage_1.default.create((previous) => {
384
+ const index = previous === undefined ? 0 : previous.page + 1;
385
+ if (index >= pages.length) {
386
+ return undefined;
387
+ }
388
+ else {
389
+ return Promise.resolve(pages[index]);
390
+ }
391
+ });
392
+ const arrayPager = pager.map((page) => page.values);
393
+ let values = [];
394
+ return AsyncPage_1.forEachAsync(arrayPager, 6, function (value) {
395
+ values.push(value);
396
+ return Promise.resolve();
397
+ }).then(function () {
398
+ chai_1.expect(values.length).to.equal(14);
399
+ chai_1.expect(values).to.eql([
400
+ 1,
401
+ 2,
402
+ 3,
403
+ 4,
404
+ 5,
405
+ 6,
406
+ 7,
407
+ 8,
408
+ 9,
409
+ 10,
410
+ 11,
411
+ 12,
412
+ 13,
413
+ 14
414
+ ]);
415
+ });
416
+ });
417
+ it("works when some pages are an empty array", function () {
418
+ const pages = [
419
+ { page: 0, values: [] },
420
+ { page: 1, values: [1, 2] },
421
+ { page: 2, values: [] },
422
+ { page: 3, values: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12] },
423
+ { page: 4, values: [] },
424
+ { page: 5, values: [13, 14] },
425
+ { page: 6, values: [] }
426
+ ];
427
+ const pager = AsyncPage_1.default.create((previous) => {
428
+ const index = previous === undefined ? 0 : previous.page + 1;
429
+ if (index >= pages.length) {
430
+ return undefined;
431
+ }
432
+ else {
433
+ return Promise.resolve(pages[index]);
434
+ }
435
+ });
436
+ const arrayPager = pager.map((page) => page.values);
437
+ let values = [];
438
+ return AsyncPage_1.forEachAsync(arrayPager, 6, function (value) {
439
+ values.push(value);
440
+ return Promise.resolve();
441
+ }).then(function () {
442
+ chai_1.expect(values.length).to.equal(14);
443
+ chai_1.expect(values).to.eql([
444
+ 1,
445
+ 2,
446
+ 3,
447
+ 4,
448
+ 5,
449
+ 6,
450
+ 7,
451
+ 8,
452
+ 9,
453
+ 10,
454
+ 11,
455
+ 12,
456
+ 13,
457
+ 14
458
+ ]);
459
+ });
460
+ });
461
+ });
462
+ });
463
+ //# sourceMappingURL=testAsyncPage.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testAsyncPage.spec.js","sourceRoot":"","sources":["../../src/test/testAsyncPage.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import "mocha";
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chai_1 = require("chai");
7
+ const OpaCompileResponseParser_1 = __importDefault(require("../OpaCompileResponseParser"));
8
+ const sampleOpaResponse_json_1 = __importDefault(require("./sampleOpaResponse.json"));
9
+ const sampleOpaResponseSimple_json_1 = __importDefault(require("./sampleOpaResponseSimple.json"));
10
+ const sampleOpaResponseUnconditionalTrue_json_1 = __importDefault(require("./sampleOpaResponseUnconditionalTrue.json"));
11
+ const sampleOpaResponseUnconditionalTrueWithDefaultRule_json_1 = __importDefault(require("./sampleOpaResponseUnconditionalTrueWithDefaultRule.json"));
12
+ const sampleOpaResponseWithDefaultRule_json_1 = __importDefault(require("./sampleOpaResponseWithDefaultRule.json"));
13
+ require("mocha");
14
+ /**
15
+ * Although equivalent, depends on how you write your policy,
16
+ * the result could contains more or less redundant expression / rules (e.g. TRUE && TRUE )
17
+ * Things could trigger more redundant expression are:
18
+ * - reference another rule without evaluate the result directly
19
+ * - e.g. `isValidURL` will likely produce more redundant expression than `isValidURL == true`
20
+ * - use NOT
21
+ * OpaCompileResultParser will dry the result to its most concise form so we don't need to worry about the difference
22
+ */
23
+ describe("Test OpaCompileResultParser with complex response", function () {
24
+ it("Parse sample response with no errors", function () {
25
+ const parser = new OpaCompileResponseParser_1.default();
26
+ const data = parser.parse(JSON.stringify(sampleOpaResponse_json_1.default));
27
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
28
+ chai_1.expect(data).to.be.an("array");
29
+ });
30
+ it("Should evalute rule `allowRead` from parse result correctly", function () {
31
+ const parser = new OpaCompileResponseParser_1.default();
32
+ parser.parse(JSON.stringify(sampleOpaResponse_json_1.default));
33
+ const result = parser.evaluate();
34
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
35
+ chai_1.expect(result.isCompleteEvaluated).to.be.equal(false);
36
+ chai_1.expect(result.residualRules).to.be.an("array");
37
+ chai_1.expect(result.residualRules.length).to.be.equal(1);
38
+ chai_1.expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
39
+ chai_1.expect(result.residualRules[0].expressions.length).to.be.equal(1);
40
+ chai_1.expect(result.residualRules[0].expressions[0].terms.length).to.be.equal(3);
41
+ chai_1.expect(result.residualRules[0].expressions[0].toHumanReadableString()).to.be.equal('input.object.content.id = "header/navigation/datasets"');
42
+ });
43
+ it("Should generate correct human readable string", function () {
44
+ const parser = new OpaCompileResponseParser_1.default();
45
+ parser.parse(JSON.stringify(sampleOpaResponse_json_1.default));
46
+ const result = parser.evaluateAsHumanReadableString();
47
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
48
+ chai_1.expect(result).to.be.equal('input.object.content.id = "header/navigation/datasets"');
49
+ });
50
+ });
51
+ describe("Test OpaCompileResultParser with simple response", function () {
52
+ it("Parse sample response with no errors", function () {
53
+ const parser = new OpaCompileResponseParser_1.default();
54
+ const data = parser.parse(JSON.stringify(sampleOpaResponseSimple_json_1.default));
55
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
56
+ chai_1.expect(data).to.be.an("array");
57
+ });
58
+ it("Should evalute rule `allowRead` from parse result correctly", function () {
59
+ const parser = new OpaCompileResponseParser_1.default();
60
+ parser.parse(JSON.stringify(sampleOpaResponseSimple_json_1.default));
61
+ const result = parser.evaluate();
62
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
63
+ chai_1.expect(result.isCompleteEvaluated).to.be.equal(false);
64
+ chai_1.expect(result.residualRules).to.be.an("array");
65
+ chai_1.expect(result.residualRules.length).to.be.equal(1);
66
+ chai_1.expect(result.residualRules[0].isCompleteEvaluated).to.be.equal(false);
67
+ chai_1.expect(result.residualRules[0].expressions.length).to.be.equal(1);
68
+ chai_1.expect(result.residualRules[0].expressions[0].terms.length).to.be.equal(3);
69
+ chai_1.expect(result.residualRules[0].expressions[0].toHumanReadableString()).to.be.equal('input.object.content.id = "header/navigation/datasets"');
70
+ });
71
+ it("Should generate correct human readable string", function () {
72
+ const parser = new OpaCompileResponseParser_1.default();
73
+ parser.parse(JSON.stringify(sampleOpaResponseSimple_json_1.default));
74
+ const result = parser.evaluateAsHumanReadableString();
75
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
76
+ chai_1.expect(result).to.be.equal('input.object.content.id = "header/navigation/datasets"');
77
+ });
78
+ });
79
+ describe("Test OpaCompileResultParser with unconditional true response", function () {
80
+ it("Parse sample response with no errors", function () {
81
+ const parser = new OpaCompileResponseParser_1.default();
82
+ const data = parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrue_json_1.default));
83
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
84
+ chai_1.expect(data).to.be.an("array");
85
+ });
86
+ it("Should evalute query from parse result correctly", function () {
87
+ const parser = new OpaCompileResponseParser_1.default();
88
+ parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrue_json_1.default));
89
+ const result = parser.evaluate();
90
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
91
+ chai_1.expect(result.isCompleteEvaluated).to.be.equal(true);
92
+ chai_1.expect(result.value).to.be.equal(true);
93
+ });
94
+ it("Should generate correct human readable string", function () {
95
+ const parser = new OpaCompileResponseParser_1.default();
96
+ parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrue_json_1.default));
97
+ const result = parser.evaluateAsHumanReadableString();
98
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
99
+ chai_1.expect(result).to.be.equal("true");
100
+ });
101
+ });
102
+ describe("Test OpaCompileResultParser with unconditional true response (policy contains default rules)", function () {
103
+ it("Parse sample response with no errors", function () {
104
+ const parser = new OpaCompileResponseParser_1.default();
105
+ const data = parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrueWithDefaultRule_json_1.default));
106
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
107
+ chai_1.expect(data).to.be.an("array");
108
+ });
109
+ it("Should evalute query from parse result correctly", function () {
110
+ const parser = new OpaCompileResponseParser_1.default();
111
+ parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrueWithDefaultRule_json_1.default));
112
+ const result = parser.evaluate();
113
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
114
+ chai_1.expect(result.isCompleteEvaluated).to.be.equal(true);
115
+ chai_1.expect(result.value).to.be.equal(true);
116
+ });
117
+ it("Should generate correct human readable string", function () {
118
+ const parser = new OpaCompileResponseParser_1.default();
119
+ parser.parse(JSON.stringify(sampleOpaResponseUnconditionalTrueWithDefaultRule_json_1.default));
120
+ const result = parser.evaluateAsHumanReadableString();
121
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
122
+ chai_1.expect(result).to.be.equal("true");
123
+ });
124
+ });
125
+ describe("Test OpaCompileResultParser with esri policy that contains default rules", function () {
126
+ it("Parse sample response with no errors", function () {
127
+ const parser = new OpaCompileResponseParser_1.default();
128
+ const data = parser.parse(JSON.stringify(sampleOpaResponseWithDefaultRule_json_1.default));
129
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
130
+ chai_1.expect(data).to.be.an("array");
131
+ });
132
+ it("Should evalute query from parse result correctly", function () {
133
+ const parser = new OpaCompileResponseParser_1.default();
134
+ parser.parse(JSON.stringify(sampleOpaResponseWithDefaultRule_json_1.default));
135
+ const result = parser.evaluate();
136
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
137
+ chai_1.expect(result.isCompleteEvaluated).to.be.equal(true);
138
+ chai_1.expect(result.value).to.be.equal(true);
139
+ });
140
+ it("Should generate correct human readable string", function () {
141
+ const parser = new OpaCompileResponseParser_1.default();
142
+ parser.parse(JSON.stringify(sampleOpaResponseWithDefaultRule_json_1.default));
143
+ const result = parser.evaluateAsHumanReadableString();
144
+ chai_1.expect(parser.hasWarns).to.be.equal(false);
145
+ chai_1.expect(result).to.be.equal("true");
146
+ });
147
+ });
148
+ //# sourceMappingURL=testOpaCompileResponseParser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testOpaCompileResponseParser.spec.js","sourceRoot":"","sources":["../../src/test/testOpaCompileResponseParser.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function encodeURIComponentWithApost(string: string): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeURIComponentWithApost = void 0;
4
+ function encodeURIComponentWithApost(string) {
5
+ return encodeURIComponent(string).replace(/'/g, "%27");
6
+ }
7
+ exports.encodeURIComponentWithApost = encodeURIComponentWithApost;
8
+ //# sourceMappingURL=util.js.map