@uipath/flow-tool 1.204.0-preview.255 → 1.205.0-preview.256
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/README.md +9 -9
- package/dist/THIRD-PARTY-NOTICES.md +36 -12
- package/dist/{authoring-bppe07p0.js → authoring-e1k40hyw.js} +6 -5
- package/dist/{binding-service-fw3rzae4.js → binding-service-yw91615m.js} +38 -30
- package/dist/{connector-service-2z7s7qtd.js → connector-service-ttm75a4n.js} +224 -47
- package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
- package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
- package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
- package/dist/debug-conversation-trigger-xsm3ycqx.js +30 -0
- package/dist/{debug-http-client-p4kf38yt.js → debug-http-client-yqjzsnhw.js} +5 -4
- package/dist/{debug-service-893erynq.js → debug-service-nra3n02y.js} +6 -5
- package/dist/{edge-service-6zr5f09c.js → edge-service-8fv0m681.js} +16 -12
- package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
- package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
- package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
- package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
- package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
- package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
- package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
- package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
- package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
- package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
- package/dist/filter-engine-7ep90g7f.js +11 -0
- package/dist/{flow-api-kjvpsxhw.js → flow-api-sat010z1.js} +16 -10
- package/dist/{flow-debug-service-9q9k756w.js → flow-debug-service-cgawm96k.js} +96 -58
- package/dist/{flow-eval-node-target-zvk7fcb2.js → flow-eval-node-target-dah1gmmh.js} +17 -17
- package/dist/flow-eval-run-api-xdygjzfv.js +13 -0
- package/dist/{flow-eval-run-service-2hfqyadh.js → flow-eval-run-service-03j1szf6.js} +73 -80
- package/dist/{flow-eval-service-m5n2svke.js → flow-eval-service-9j46ta9k.js} +167 -415
- package/dist/{flow-init-sdk-source-z9qx1zkt.js → flow-init-sdk-source-xvdvkq7d.js} +6 -5
- package/dist/{flow-init-service-8y8b76zm.js → flow-init-service-0a4y3a46.js} +19 -15
- package/dist/{flow-io-w11yspjx.js → flow-io-1wabd32s.js} +15 -11
- package/dist/{flow-migrate-service-v7ch4t3h.js → flow-migrate-service-mkqpbwtv.js} +16 -12
- package/dist/{flow-pack-service-xs8v5mba.js → flow-pack-service-7dj2hhyz.js} +47 -38
- package/dist/flow-validate-service-1ktjayjv.js +70 -0
- package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
- package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
- package/dist/fr-VBM5WRC2-707ha692.js +200 -0
- package/dist/{governance-fetcher-18pk0mgv.js → governance-fetcher-76hxssjm.js} +7 -6
- package/dist/{hitl-service-ehnfkwhp.js → hitl-service-vcbhd4cb.js} +15 -11
- package/dist/{index-aaq9rwfv.js → index-1b2je9n2.js} +1088 -233
- package/dist/index-d090f35d.js +66 -0
- package/dist/{index-yj4xk2aw.js → index-dgdnbb2g.js} +7 -5
- package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
- package/dist/{index-9hqj0ee4.js → index-hz008fep.js} +6 -5
- package/dist/{index-vrhcbxnk.js → index-nsn889vf.js} +6 -5
- package/dist/{index-2s8rmmw6.js → index-sqhbn7ew.js} +4 -4
- package/dist/{index-tnz5ks4t.js → index-wycgq0ff.js} +65 -2230
- package/dist/index.js +17 -14
- package/dist/init.js +19 -15
- package/dist/inline-entity-resolver-64pqwk86.js +45 -0
- package/dist/input-reader-n7kzdrev.js +12 -0
- package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
- package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
- package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
- package/dist/{known-types-q6fcyq2e.js → known-types-3025scz1.js} +5 -5
- package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
- package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
- package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
- package/dist/{maestro-automate-entry-qak46eg0.js → maestro-automate-entry-6f9act3w.js} +2 -2
- package/dist/{node-cvwqsgg0.js → node-hz6cvp9d.js} +29 -15
- package/dist/{node-service-544fv7as.js → node-service-7wz8gx7h.js} +41 -30
- package/dist/{node-strategy-fdnkvq4a.js → node-strategy-1dmmhvf3.js} +1 -1
- package/dist/node-sync-service-yvyf7chw.js +61 -0
- package/dist/packager-tool-10vc8pq4.js +2 -0
- package/dist/{packager-tool-29b6r6eg.js → packager-tool-2h15x2kb.js} +6 -6
- package/dist/{packager-tool-h7cjs093.js → packager-tool-2z0r1f32.js} +668 -57
- package/dist/packager-tool-4kr6g0zw.js +16 -0
- package/dist/packager-tool-4x7tzvv0.js +1176 -0
- package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
- package/dist/packager-tool-7hw344bt.js +107 -0
- package/dist/{packager-tool-pb7wzsn4.js → packager-tool-7wnxyvf9.js} +519 -437
- package/dist/{packager-tool-m8xtf5ej.js → packager-tool-8g5931fz.js} +7 -4
- package/dist/{packager-tool-h9tzz0qd.js → packager-tool-961vsbsc.js} +15 -10
- package/dist/packager-tool-9era57c0.js +28 -0
- package/dist/packager-tool-9gprvfcy.js +23 -0
- package/dist/packager-tool-9jxzgsxc.js +14 -0
- package/dist/{packager-tool-zxp4hya4.js → packager-tool-a5afh1dc.js} +34 -13
- package/dist/{packager-tool-02f63a08.js → packager-tool-apawc11t.js} +88 -762
- package/dist/{packager-tool-tf3d2y8z.js → packager-tool-aw9v0raw.js} +2 -2
- package/dist/packager-tool-cqtsj6yh.js +2 -0
- package/dist/{packager-tool-5nqhxb9e.js → packager-tool-dwd6cc01.js} +16110 -13031
- package/dist/{packager-tool-t605qewm.js → packager-tool-dxgrhfq5.js} +2 -2
- package/dist/{packager-tool-awkq26v0.js → packager-tool-e7kvq8hf.js} +5 -3
- package/dist/{packager-tool-2y2mmdnq.js → packager-tool-fjqpf1y6.js} +6 -24
- package/dist/{packager-tool-3dc9gz35.js → packager-tool-frjt46rb.js} +1 -1
- package/dist/{packager-tool-y8egb0fa.js → packager-tool-gqq3vkgh.js} +2573 -535
- package/dist/{packager-tool-w5a1hhyj.js → packager-tool-hxyjn885.js} +13 -2
- package/dist/packager-tool-j3228zs9.js +35 -0
- package/dist/{packager-tool-hhy1gr2k.js → packager-tool-jgfzfqjm.js} +1 -1
- package/dist/{packager-tool-5csvkk54.js → packager-tool-kb520rm5.js} +172 -71
- package/dist/{packager-tool-k04k2rnq.js → packager-tool-kmv2p8z4.js} +20 -8
- package/dist/{packager-tool-6h69pd2a.js → packager-tool-kn86394c.js} +127 -61
- package/dist/packager-tool-mgcz986r.js +143 -0
- package/dist/{packager-tool-3h2ktz6q.js → packager-tool-myhbp761.js} +11 -1
- package/dist/{packager-tool-5tk1eg46.js → packager-tool-ns9xn7zq.js} +13 -13
- package/dist/{packager-tool-vbfz8k7w.js → packager-tool-p8gab24q.js} +52 -32
- package/dist/{packager-tool-stq8800d.js → packager-tool-pacrqxv2.js} +17 -4
- package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
- package/dist/packager-tool-phw8ydjx.js +331 -0
- package/dist/{packager-tool-mx0gg6yh.js → packager-tool-q8akejne.js} +6 -4
- package/dist/packager-tool-qcqb9hf8.js +26 -0
- package/dist/{packager-tool-n89vrpex.js → packager-tool-skcjythd.js} +10907 -25608
- package/dist/{packager-tool-v37kemg5.js → packager-tool-sphnextf.js} +5 -6
- package/dist/{packager-tool-1ca047de.js → packager-tool-sqpesv2e.js} +12 -56
- package/dist/packager-tool-t7ahhaer.js +877 -0
- package/dist/{packager-tool-zgm9mqrh.js → packager-tool-thnkpqwc.js} +1802 -378
- package/dist/{packager-tool-peawy22c.js → packager-tool-tqjfdpda.js} +53 -8
- package/dist/{packager-tool-gb4sm499.js → packager-tool-vd3rn4fj.js} +463 -327
- package/dist/{packager-tool-5tjzg56t.js → packager-tool-wh660fny.js} +1 -1
- package/dist/{packager-tool-tyg399d6.js → packager-tool-wze74wyk.js} +74 -47
- package/dist/{packager-tool-zbhqrk3p.js → packager-tool-x20684x5.js} +1 -1
- package/dist/packager-tool-xj0agqpk.js +11 -0
- package/dist/packager-tool-xk78j7dz.js +1256 -0
- package/dist/{packager-tool-py93409h.js → packager-tool-ymma2s85.js} +2 -2
- package/dist/packager-tool-z0yxfhdj.js +40 -0
- package/dist/packager-tool.js +13 -10
- package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
- package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
- package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
- package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
- package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
- package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
- package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
- package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
- package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
- package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
- package/dist/services/connector-request-buckets.d.ts +1 -0
- package/dist/services/flow-eval-file-store.d.ts +1 -11
- package/dist/services/flow-eval-utils.d.ts +1 -32
- package/dist/services/flow-validate-service.d.ts +51 -0
- package/dist/services/inline-entity-resolver.d.ts +22 -0
- package/dist/services/node-service.d.ts +21 -1
- package/dist/services/packaging-utils.d.ts +15 -2
- package/dist/{shared-utils-pnbvyyb2.js → shared-utils-tqnx96mg.js} +4 -3
- package/dist/solution-auth-8qz5pw7z.js +14 -0
- package/dist/solution-discovery-vqravtkh.js +44 -0
- package/dist/{tidy-service-j70ccg27.js → tidy-service-tqjea6g2.js} +143 -39
- package/dist/tool.js +17 -14
- package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
- package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
- package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
- package/dist/utils/flow-io.d.ts +2 -1
- package/dist/validation.js +39 -33
- package/dist/{variable-service-86t2r5m9.js → variable-service-kqnqxmx2.js} +16 -12
- package/dist/{wait-for-flow-job-d8m6mqb4.js → wait-for-flow-job-b0vj8828.js} +15 -12
- package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
- package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
- package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
- package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
- package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
- package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
- package/package.json +2 -2
- package/dist/debug-conversation-trigger-hgszjdhx.js +0 -44
- package/dist/flow-eval-run-api-byx3cacw.js +0 -13
- package/dist/flow-validate-service-12v3bz1b.js +0 -64
- package/dist/input-reader-vhar4g0k.js +0 -11
- package/dist/node-sync-service-ccwgtyte.js +0 -40
- package/dist/packager-tool-4g5hk66k.js +0 -454
- package/dist/packager-tool-kg35b9s6.js +0 -15
- package/dist/packager-tool-pz5nqg0s.js +0 -64
- package/dist/packager-tool-t3ysatjd.js +0 -521
- package/dist/packager-tool-vd6jt4n8.js +0 -208
- package/dist/packager-tool-vscvjrhn.js +0 -265
- package/dist/services/flow-debug-service.d.ts +0 -320
- package/dist/services/flow-eval-schema/deterministic-evaluators.d.ts +0 -110
- package/dist/services/flow-eval-schema/evaluator-fields.d.ts +0 -66
- package/dist/services/flow-eval-schema/helpers.d.ts +0 -9
- package/dist/services/flow-eval-schema/index.d.ts +0 -4
- package/dist/services/flow-eval-schema/llm-judge-evaluators.d.ts +0 -174
- package/dist/services/flow-eval-schema/prompts.d.ts +0 -2
- package/dist/services/flow-eval-schema/registry.d.ts +0 -375
- package/dist/services/flow-eval-schema/tool-call-evaluators.d.ts +0 -93
- package/dist/services/flow-eval-schema/types.d.ts +0 -95
- package/dist/services/flow-eval-types.d.ts +0 -6
- package/dist/utils/write-resolved-flow.d.ts +0 -7
- /package/dist/{headless-45dypanh.js → headless-fw8pwyzm.js} +0 -0
- /package/dist/{localization-xecwjpe2.js → localization-d6gjmrsw.js} +0 -0
|
@@ -0,0 +1,877 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__require
|
|
3
|
+
} from "./packager-tool-1yh8g550.js";
|
|
4
|
+
|
|
5
|
+
// ../common/src/telemetry/pseudonymize.ts
|
|
6
|
+
var PSEUDONYM_DOMAIN = "uipath-cli/telemetry/pseudonym/v1:";
|
|
7
|
+
var PSEUDONYM_HEX_LENGTH = 32;
|
|
8
|
+
var SHA256_K = new Uint32Array([
|
|
9
|
+
1116352408,
|
|
10
|
+
1899447441,
|
|
11
|
+
3049323471,
|
|
12
|
+
3921009573,
|
|
13
|
+
961987163,
|
|
14
|
+
1508970993,
|
|
15
|
+
2453635748,
|
|
16
|
+
2870763221,
|
|
17
|
+
3624381080,
|
|
18
|
+
310598401,
|
|
19
|
+
607225278,
|
|
20
|
+
1426881987,
|
|
21
|
+
1925078388,
|
|
22
|
+
2162078206,
|
|
23
|
+
2614888103,
|
|
24
|
+
3248222580,
|
|
25
|
+
3835390401,
|
|
26
|
+
4022224774,
|
|
27
|
+
264347078,
|
|
28
|
+
604807628,
|
|
29
|
+
770255983,
|
|
30
|
+
1249150122,
|
|
31
|
+
1555081692,
|
|
32
|
+
1996064986,
|
|
33
|
+
2554220882,
|
|
34
|
+
2821834349,
|
|
35
|
+
2952996808,
|
|
36
|
+
3210313671,
|
|
37
|
+
3336571891,
|
|
38
|
+
3584528711,
|
|
39
|
+
113926993,
|
|
40
|
+
338241895,
|
|
41
|
+
666307205,
|
|
42
|
+
773529912,
|
|
43
|
+
1294757372,
|
|
44
|
+
1396182291,
|
|
45
|
+
1695183700,
|
|
46
|
+
1986661051,
|
|
47
|
+
2177026350,
|
|
48
|
+
2456956037,
|
|
49
|
+
2730485921,
|
|
50
|
+
2820302411,
|
|
51
|
+
3259730800,
|
|
52
|
+
3345764771,
|
|
53
|
+
3516065817,
|
|
54
|
+
3600352804,
|
|
55
|
+
4094571909,
|
|
56
|
+
275423344,
|
|
57
|
+
430227734,
|
|
58
|
+
506948616,
|
|
59
|
+
659060556,
|
|
60
|
+
883997877,
|
|
61
|
+
958139571,
|
|
62
|
+
1322822218,
|
|
63
|
+
1537002063,
|
|
64
|
+
1747873779,
|
|
65
|
+
1955562222,
|
|
66
|
+
2024104815,
|
|
67
|
+
2227730452,
|
|
68
|
+
2361852424,
|
|
69
|
+
2428436474,
|
|
70
|
+
2756734187,
|
|
71
|
+
3204031479,
|
|
72
|
+
3329325298
|
|
73
|
+
]);
|
|
74
|
+
var SHA256_INITIAL_STATE = new Uint32Array([
|
|
75
|
+
1779033703,
|
|
76
|
+
3144134277,
|
|
77
|
+
1013904242,
|
|
78
|
+
2773480762,
|
|
79
|
+
1359893119,
|
|
80
|
+
2600822924,
|
|
81
|
+
528734635,
|
|
82
|
+
1541459225
|
|
83
|
+
]);
|
|
84
|
+
function rotr(value, bits) {
|
|
85
|
+
return (value >>> bits | value << 32 - bits) >>> 0;
|
|
86
|
+
}
|
|
87
|
+
function sha256Hex(input) {
|
|
88
|
+
const bytes = new TextEncoder().encode(input);
|
|
89
|
+
const paddedLength = bytes.length + 9 + 63 >> 6 << 6;
|
|
90
|
+
const buffer = new Uint8Array(paddedLength);
|
|
91
|
+
buffer.set(bytes);
|
|
92
|
+
buffer[bytes.length] = 128;
|
|
93
|
+
const view = new DataView(buffer.buffer);
|
|
94
|
+
const bitLength = bytes.length * 8;
|
|
95
|
+
view.setUint32(paddedLength - 8, Math.floor(bitLength / 4294967296));
|
|
96
|
+
view.setUint32(paddedLength - 4, bitLength >>> 0);
|
|
97
|
+
const state = SHA256_INITIAL_STATE.slice();
|
|
98
|
+
const schedule = new Uint32Array(64);
|
|
99
|
+
for (let offset = 0;offset < paddedLength; offset += 64) {
|
|
100
|
+
for (let i = 0;i < 16; i++) {
|
|
101
|
+
schedule[i] = view.getUint32(offset + i * 4);
|
|
102
|
+
}
|
|
103
|
+
for (let i = 16;i < 64; i++) {
|
|
104
|
+
const x = schedule[i - 15];
|
|
105
|
+
const y = schedule[i - 2];
|
|
106
|
+
const s0 = (rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3) >>> 0;
|
|
107
|
+
const s1 = (rotr(y, 17) ^ rotr(y, 19) ^ y >>> 10) >>> 0;
|
|
108
|
+
schedule[i] = schedule[i - 16] + s0 + schedule[i - 7] + s1 >>> 0;
|
|
109
|
+
}
|
|
110
|
+
let a = state[0];
|
|
111
|
+
let b = state[1];
|
|
112
|
+
let c = state[2];
|
|
113
|
+
let d = state[3];
|
|
114
|
+
let e = state[4];
|
|
115
|
+
let f = state[5];
|
|
116
|
+
let g = state[6];
|
|
117
|
+
let h = state[7];
|
|
118
|
+
for (let i = 0;i < 64; i++) {
|
|
119
|
+
const s1 = (rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25)) >>> 0;
|
|
120
|
+
const ch = (e & f ^ ~e & g) >>> 0;
|
|
121
|
+
const temp1 = h + s1 + ch + SHA256_K[i] + schedule[i] >>> 0;
|
|
122
|
+
const s0 = (rotr(a, 2) ^ rotr(a, 13) ^ rotr(a, 22)) >>> 0;
|
|
123
|
+
const maj = (a & b ^ a & c ^ b & c) >>> 0;
|
|
124
|
+
const temp2 = s0 + maj >>> 0;
|
|
125
|
+
h = g;
|
|
126
|
+
g = f;
|
|
127
|
+
f = e;
|
|
128
|
+
e = d + temp1 >>> 0;
|
|
129
|
+
d = c;
|
|
130
|
+
c = b;
|
|
131
|
+
b = a;
|
|
132
|
+
a = temp1 + temp2 >>> 0;
|
|
133
|
+
}
|
|
134
|
+
state[0] = state[0] + a >>> 0;
|
|
135
|
+
state[1] = state[1] + b >>> 0;
|
|
136
|
+
state[2] = state[2] + c >>> 0;
|
|
137
|
+
state[3] = state[3] + d >>> 0;
|
|
138
|
+
state[4] = state[4] + e >>> 0;
|
|
139
|
+
state[5] = state[5] + f >>> 0;
|
|
140
|
+
state[6] = state[6] + g >>> 0;
|
|
141
|
+
state[7] = state[7] + h >>> 0;
|
|
142
|
+
}
|
|
143
|
+
let hex = "";
|
|
144
|
+
for (const word of state) {
|
|
145
|
+
hex += word.toString(16).padStart(8, "0");
|
|
146
|
+
}
|
|
147
|
+
return hex;
|
|
148
|
+
}
|
|
149
|
+
function resolveSha256Hex() {
|
|
150
|
+
try {
|
|
151
|
+
const nodeCrypto = __require("node:crypto");
|
|
152
|
+
const createHash = nodeCrypto?.createHash;
|
|
153
|
+
if (typeof createHash !== "function") {
|
|
154
|
+
return sha256Hex;
|
|
155
|
+
}
|
|
156
|
+
const native = (input) => createHash("sha256").update(input, "utf8").digest("hex");
|
|
157
|
+
return native("abc") === sha256Hex("abc") ? native : sha256Hex;
|
|
158
|
+
} catch {
|
|
159
|
+
return sha256Hex;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
var cachedSha256Hex;
|
|
163
|
+
function digest(input) {
|
|
164
|
+
cachedSha256Hex ??= resolveSha256Hex();
|
|
165
|
+
return cachedSha256Hex(input);
|
|
166
|
+
}
|
|
167
|
+
function pseudonymize(input) {
|
|
168
|
+
return digest(`${PSEUDONYM_DOMAIN}${input}`).slice(0, PSEUDONYM_HEX_LENGTH);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// ../common/src/singleton.ts
|
|
172
|
+
var PREFIX = "@uipath/common/";
|
|
173
|
+
var _g = globalThis;
|
|
174
|
+
function singleton(ctorOrName) {
|
|
175
|
+
const name = typeof ctorOrName === "string" ? ctorOrName : ctorOrName.name;
|
|
176
|
+
const key = Symbol.for(PREFIX + name);
|
|
177
|
+
return {
|
|
178
|
+
get(fallback) {
|
|
179
|
+
return _g[key] ?? fallback;
|
|
180
|
+
},
|
|
181
|
+
set(value) {
|
|
182
|
+
_g[key] = value;
|
|
183
|
+
},
|
|
184
|
+
clear() {
|
|
185
|
+
delete _g[key];
|
|
186
|
+
},
|
|
187
|
+
getOrInit(factory, guard) {
|
|
188
|
+
const existing = _g[key];
|
|
189
|
+
if (existing != null && typeof existing === "object") {
|
|
190
|
+
if (!guard || guard(existing)) {
|
|
191
|
+
return existing;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const instance = factory();
|
|
195
|
+
_g[key] = instance;
|
|
196
|
+
return instance;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// ../common/src/telemetry/supplied-values.ts
|
|
202
|
+
var suppliedValuesSlot = singleton("TelemetrySuppliedArgumentValues");
|
|
203
|
+
function activeEntries() {
|
|
204
|
+
const existing = suppliedValuesSlot.get();
|
|
205
|
+
return Array.isArray(existing) ? existing : [];
|
|
206
|
+
}
|
|
207
|
+
var MIN_SCRUBBABLE_LENGTH = 4;
|
|
208
|
+
function recordSuppliedArgumentValues(values) {
|
|
209
|
+
const flat = [];
|
|
210
|
+
const push = (value) => {
|
|
211
|
+
if (Array.isArray(value)) {
|
|
212
|
+
for (const item of value) {
|
|
213
|
+
push(item);
|
|
214
|
+
}
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (typeof value === "string" && value.length >= MIN_SCRUBBABLE_LENGTH) {
|
|
218
|
+
flat.push(value);
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
push(values);
|
|
222
|
+
const entry = { values: flat };
|
|
223
|
+
suppliedValuesSlot.set([...activeEntries(), entry]);
|
|
224
|
+
return entry;
|
|
225
|
+
}
|
|
226
|
+
function releaseSuppliedArgumentValues(entry) {
|
|
227
|
+
suppliedValuesSlot.set(activeEntries().filter((held) => held !== entry));
|
|
228
|
+
}
|
|
229
|
+
function getSuppliedArgumentValues() {
|
|
230
|
+
const all = new Set;
|
|
231
|
+
for (const entry of activeEntries()) {
|
|
232
|
+
for (const value of entry.values) {
|
|
233
|
+
all.add(value);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return [...all].sort((a, b) => b.length - a.length);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// ../common/src/telemetry/pii-redactor.ts
|
|
240
|
+
var REDACTED = "[REDACTED]";
|
|
241
|
+
var MAX_VALUE_LENGTH = 280;
|
|
242
|
+
var MAX_STACK_LENGTH = 4096;
|
|
243
|
+
var MAX_SCAN_LENGTH = MAX_STACK_LENGTH;
|
|
244
|
+
function truncate(value, maxLength) {
|
|
245
|
+
return value.length > maxLength ? `${value.slice(0, maxLength)}…` : value;
|
|
246
|
+
}
|
|
247
|
+
var SENSITIVE_NAME_TOKENS = new Set([
|
|
248
|
+
"token",
|
|
249
|
+
"tokens",
|
|
250
|
+
"secret",
|
|
251
|
+
"secrets",
|
|
252
|
+
"password",
|
|
253
|
+
"passwords",
|
|
254
|
+
"pwd",
|
|
255
|
+
"credential",
|
|
256
|
+
"credentials",
|
|
257
|
+
"auth",
|
|
258
|
+
"authentication",
|
|
259
|
+
"authorization",
|
|
260
|
+
"authority",
|
|
261
|
+
"cert",
|
|
262
|
+
"certificate",
|
|
263
|
+
"certificates"
|
|
264
|
+
]);
|
|
265
|
+
var SENSITIVE_KEY_PREFIXES = new Set([
|
|
266
|
+
"api",
|
|
267
|
+
"access",
|
|
268
|
+
"client",
|
|
269
|
+
"private",
|
|
270
|
+
"public",
|
|
271
|
+
"signing",
|
|
272
|
+
"encryption",
|
|
273
|
+
"session",
|
|
274
|
+
"master",
|
|
275
|
+
"shared",
|
|
276
|
+
"root",
|
|
277
|
+
"ssh",
|
|
278
|
+
"rsa",
|
|
279
|
+
"aes",
|
|
280
|
+
"hmac",
|
|
281
|
+
"oauth"
|
|
282
|
+
]);
|
|
283
|
+
var UUID_PATTERN = /\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
|
|
284
|
+
var EMAIL_PATTERN = /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g;
|
|
285
|
+
var JWT_PATTERN = /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g;
|
|
286
|
+
var LONG_TOKEN_PATTERN = /\b[A-Za-z0-9_-]{40,}\b/g;
|
|
287
|
+
var PADDED_BASE64_PATTERN = /(?<![A-Za-z0-9+/])[A-Za-z0-9+/]{16,}={1,2}(?![A-Za-z0-9+/=])/g;
|
|
288
|
+
var BASE64_WITH_PLUS_PATTERN = /[A-Za-z0-9+/]{40,}/g;
|
|
289
|
+
var USER_HOME_PATTERN = /(?<![A-Za-z0-9._-])([/\\])(Users|home|Profiles)([/\\])([^/\\]+)/gi;
|
|
290
|
+
var UNC_PATH_PATTERN = /(^|[\s"'<>|=,;([{])(\\\\[^\s"'<>|]+)/g;
|
|
291
|
+
var HOST_PORT_PATTERN = /(?<![/@.\w-])(?!\d+\.\d+\.\d+\.\d+:)[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?)+:\d{1,5}\b/g;
|
|
292
|
+
var SOURCE_FILE_EXTENSIONS = new Set([
|
|
293
|
+
"ts",
|
|
294
|
+
"tsx",
|
|
295
|
+
"js",
|
|
296
|
+
"jsx",
|
|
297
|
+
"mjs",
|
|
298
|
+
"cjs",
|
|
299
|
+
"cts",
|
|
300
|
+
"mts",
|
|
301
|
+
"py",
|
|
302
|
+
"cs",
|
|
303
|
+
"java",
|
|
304
|
+
"go",
|
|
305
|
+
"rs",
|
|
306
|
+
"rb",
|
|
307
|
+
"php",
|
|
308
|
+
"sh",
|
|
309
|
+
"ps1",
|
|
310
|
+
"json",
|
|
311
|
+
"jsonc",
|
|
312
|
+
"yaml",
|
|
313
|
+
"yml",
|
|
314
|
+
"xml",
|
|
315
|
+
"xaml",
|
|
316
|
+
"md",
|
|
317
|
+
"txt",
|
|
318
|
+
"log",
|
|
319
|
+
"css",
|
|
320
|
+
"html",
|
|
321
|
+
"htm",
|
|
322
|
+
"csproj",
|
|
323
|
+
"nuspec",
|
|
324
|
+
"sql"
|
|
325
|
+
]);
|
|
326
|
+
var URL_PATTERN = /\bhttps?:\/\/[^\s,;]+/gi;
|
|
327
|
+
var QUOTED_LITERAL_MAX_SPAN = 200;
|
|
328
|
+
var QUOTED_LITERAL_PATTERN = new RegExp([
|
|
329
|
+
`(?<![A-Za-z0-9])'(?:[^\\
|
|
330
|
+
]|\\.){2,${QUOTED_LITERAL_MAX_SPAN}}?'(?![A-Za-z0-9])`,
|
|
331
|
+
`(?<![A-Za-z0-9])"(?:[^\\
|
|
332
|
+
]|\\.){2,${QUOTED_LITERAL_MAX_SPAN}}?"(?![A-Za-z0-9])`
|
|
333
|
+
].join("|"), "g");
|
|
334
|
+
var JSON_BODY_PATTERN = /[{[][^{}[\]:,]*[:,][^{}[\]]*[\]}]/g;
|
|
335
|
+
var COLLAPSED_BODY = "{…}";
|
|
336
|
+
var COLLAPSED_BODY_MARKER = "\x01body\x01";
|
|
337
|
+
var MAX_BODY_NESTING = 8;
|
|
338
|
+
function collapseJsonBodies(text) {
|
|
339
|
+
let out = text;
|
|
340
|
+
for (let pass = 0;pass < MAX_BODY_NESTING; pass++) {
|
|
341
|
+
const next = out.replace(JSON_BODY_PATTERN, COLLAPSED_BODY_MARKER);
|
|
342
|
+
if (next === out) {
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
out = next;
|
|
346
|
+
}
|
|
347
|
+
return out.split(COLLAPSED_BODY_MARKER).join(COLLAPSED_BODY);
|
|
348
|
+
}
|
|
349
|
+
var TRAILING_PROSE_PUNCT = `.,;:!?)]}>'"`;
|
|
350
|
+
function peelTrailingPunctuation(match) {
|
|
351
|
+
let end = match.length;
|
|
352
|
+
while (end > 0 && TRAILING_PROSE_PUNCT.includes(match[end - 1])) {
|
|
353
|
+
end -= 1;
|
|
354
|
+
}
|
|
355
|
+
return [match.slice(0, end), match.slice(end)];
|
|
356
|
+
}
|
|
357
|
+
function redactUrl(raw) {
|
|
358
|
+
try {
|
|
359
|
+
const url = new URL(raw);
|
|
360
|
+
return `${url.protocol}//${url.host}`;
|
|
361
|
+
} catch {
|
|
362
|
+
return `url#${pseudonymize(raw)}`;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function redactValueDetectors(value, maxLength = MAX_VALUE_LENGTH) {
|
|
366
|
+
let out = truncate(value, MAX_SCAN_LENGTH);
|
|
367
|
+
out = out.replace(JWT_PATTERN, () => REDACTED);
|
|
368
|
+
out = out.replace(URL_PATTERN, (match) => {
|
|
369
|
+
const [core, trailing] = peelTrailingPunctuation(match);
|
|
370
|
+
return `${redactUrl(core)}${trailing}`;
|
|
371
|
+
});
|
|
372
|
+
out = out.replace(USER_HOME_PATTERN, (_match, sep1, folder, sep2) => `${sep1}${folder}${sep2}<user>`);
|
|
373
|
+
out = out.replace(UNC_PATH_PATTERN, (_match, before, path) => {
|
|
374
|
+
const [core, trailing] = peelTrailingPunctuation(path);
|
|
375
|
+
return `${before}unc#${pseudonymize(core)}${trailing}`;
|
|
376
|
+
});
|
|
377
|
+
out = out.replace(EMAIL_PATTERN, (match) => `email#${pseudonymize(match)}`);
|
|
378
|
+
out = out.replace(UUID_PATTERN, (match) => `uuid#${pseudonymize(match)}`);
|
|
379
|
+
out = out.replace(HOST_PORT_PATTERN, (match) => {
|
|
380
|
+
const split = match.lastIndexOf(":");
|
|
381
|
+
const host = match.slice(0, split);
|
|
382
|
+
const extension = host.slice(host.lastIndexOf(".") + 1).toLowerCase();
|
|
383
|
+
if (SOURCE_FILE_EXTENSIONS.has(extension)) {
|
|
384
|
+
return match;
|
|
385
|
+
}
|
|
386
|
+
return `host#${pseudonymize(host)}:${match.slice(split + 1)}`;
|
|
387
|
+
});
|
|
388
|
+
out = out.replace(PADDED_BASE64_PATTERN, () => REDACTED);
|
|
389
|
+
out = out.replace(BASE64_WITH_PLUS_PATTERN, (match) => match.includes("+") ? REDACTED : match);
|
|
390
|
+
out = out.replace(LONG_TOKEN_PATTERN, () => REDACTED);
|
|
391
|
+
return truncate(out, maxLength);
|
|
392
|
+
}
|
|
393
|
+
function redactSpanName(name) {
|
|
394
|
+
return redactValueDetectors(truncate(name, MAX_SCAN_LENGTH).replace(QUOTED_LITERAL_PATTERN, (match) => `${match[0]}<redacted>${match[0]}`));
|
|
395
|
+
}
|
|
396
|
+
var HTTP_DEPENDENCY_NAME = /^([A-Z]+) (\/.*)$/s;
|
|
397
|
+
function redactHttpDependencyName(name) {
|
|
398
|
+
const parts = HTTP_DEPENDENCY_NAME.exec(name);
|
|
399
|
+
if (!parts) {
|
|
400
|
+
return redactMessage(name);
|
|
401
|
+
}
|
|
402
|
+
return `${parts[1]} ${redactMessage(parts[2])}`;
|
|
403
|
+
}
|
|
404
|
+
function redactMessage(value) {
|
|
405
|
+
let out = collapseJsonBodies(truncate(value, MAX_SCAN_LENGTH)).replace(QUOTED_LITERAL_PATTERN, (match) => `${match[0]}<redacted>${match[0]}`);
|
|
406
|
+
for (const supplied of getSuppliedArgumentValues()) {
|
|
407
|
+
out = out.split(supplied).join(REDACTED);
|
|
408
|
+
}
|
|
409
|
+
return redactValueDetectors(out);
|
|
410
|
+
}
|
|
411
|
+
var MESSAGE_NAMES = new Set([
|
|
412
|
+
"message",
|
|
413
|
+
"errormessage",
|
|
414
|
+
"errmessage",
|
|
415
|
+
"error_message",
|
|
416
|
+
"msg",
|
|
417
|
+
"detail",
|
|
418
|
+
"details",
|
|
419
|
+
"reason",
|
|
420
|
+
"instructions",
|
|
421
|
+
"warning"
|
|
422
|
+
]);
|
|
423
|
+
function isFreeFormValue(name, value) {
|
|
424
|
+
return MESSAGE_NAMES.has(name.toLowerCase()) || /['"{[]/.test(value);
|
|
425
|
+
}
|
|
426
|
+
function redactError(error) {
|
|
427
|
+
const safe = new Error(redactMessage(error.message ?? ""));
|
|
428
|
+
safe.name = error.name;
|
|
429
|
+
safe.stack = typeof error.stack === "string" ? redactStack(error.stack) : undefined;
|
|
430
|
+
return safe;
|
|
431
|
+
}
|
|
432
|
+
function redactStack(stack) {
|
|
433
|
+
const bounded = truncate(stack, MAX_STACK_LENGTH);
|
|
434
|
+
const firstBreak = bounded.indexOf(`
|
|
435
|
+
`);
|
|
436
|
+
if (firstBreak === -1) {
|
|
437
|
+
return redactMessage(bounded);
|
|
438
|
+
}
|
|
439
|
+
return `${redactMessage(bounded.slice(0, firstBreak))}
|
|
440
|
+
${redactValueDetectors(bounded.slice(firstBreak + 1), MAX_STACK_LENGTH)}`;
|
|
441
|
+
}
|
|
442
|
+
function nameTokens(name) {
|
|
443
|
+
return name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g, "$1 $2").split(/[\s._-]+/).map((t) => t.toLowerCase()).filter(Boolean);
|
|
444
|
+
}
|
|
445
|
+
function isSensitiveName(name) {
|
|
446
|
+
const tokens = nameTokens(name);
|
|
447
|
+
for (let i = 0;i < tokens.length; i++) {
|
|
448
|
+
const token = tokens[i];
|
|
449
|
+
if (SENSITIVE_NAME_TOKENS.has(token)) {
|
|
450
|
+
return true;
|
|
451
|
+
}
|
|
452
|
+
if (token === "key" || token === "keys") {
|
|
453
|
+
const prev = tokens[i - 1];
|
|
454
|
+
if (prev && SENSITIVE_KEY_PREFIXES.has(prev)) {
|
|
455
|
+
return true;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
return false;
|
|
460
|
+
}
|
|
461
|
+
function redactProperty(name, value) {
|
|
462
|
+
if (value === undefined || value === null) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
if (isSensitiveName(name)) {
|
|
466
|
+
return REDACTED;
|
|
467
|
+
}
|
|
468
|
+
if (typeof value === "boolean" || typeof value === "number") {
|
|
469
|
+
return value;
|
|
470
|
+
}
|
|
471
|
+
if (typeof value !== "string") {
|
|
472
|
+
return "[OBJECT]";
|
|
473
|
+
}
|
|
474
|
+
return isFreeFormValue(name, value) ? redactMessage(value) : redactValueDetectors(value);
|
|
475
|
+
}
|
|
476
|
+
function redactProperties(properties) {
|
|
477
|
+
const out = {};
|
|
478
|
+
for (const [name, value] of Object.entries(properties)) {
|
|
479
|
+
const redacted = redactProperty(name, value);
|
|
480
|
+
if (redacted !== undefined) {
|
|
481
|
+
out[name] = redacted;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
return out;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// ../common/src/catch-error.ts
|
|
488
|
+
var MAX_SERIALIZED_LENGTH = 500;
|
|
489
|
+
var TRUNCATION_SUFFIX = "…(truncated)";
|
|
490
|
+
var REDACTED2 = "[REDACTED]";
|
|
491
|
+
function cap(text) {
|
|
492
|
+
return text.length > MAX_SERIALIZED_LENGTH ? `${text.slice(0, MAX_SERIALIZED_LENGTH)}${TRUNCATION_SUFFIX}` : text;
|
|
493
|
+
}
|
|
494
|
+
function omitSensitive(key, value) {
|
|
495
|
+
return key.length > 0 && isSensitiveName(key) ? REDACTED2 : value;
|
|
496
|
+
}
|
|
497
|
+
function describeThrownValue(value) {
|
|
498
|
+
if (typeof value !== "object" || value === null) {
|
|
499
|
+
return String(value);
|
|
500
|
+
}
|
|
501
|
+
let message;
|
|
502
|
+
try {
|
|
503
|
+
message = value.message;
|
|
504
|
+
} catch {
|
|
505
|
+
message = undefined;
|
|
506
|
+
}
|
|
507
|
+
if (typeof message === "string" && message.length > 0) {
|
|
508
|
+
return cap(message);
|
|
509
|
+
}
|
|
510
|
+
try {
|
|
511
|
+
const json = JSON.stringify(value, omitSensitive);
|
|
512
|
+
if (json !== undefined) {
|
|
513
|
+
return cap(json);
|
|
514
|
+
}
|
|
515
|
+
} catch {}
|
|
516
|
+
return String(value);
|
|
517
|
+
}
|
|
518
|
+
function toError(error) {
|
|
519
|
+
return error instanceof Error ? error : new Error(describeThrownValue(error), { cause: error });
|
|
520
|
+
}
|
|
521
|
+
function isPromiseLike(value) {
|
|
522
|
+
return value !== null && typeof value === "object" && typeof value.then === "function";
|
|
523
|
+
}
|
|
524
|
+
function catchError(fnOrPromise) {
|
|
525
|
+
if (isPromiseLike(fnOrPromise)) {
|
|
526
|
+
return settlePromiseLike(fnOrPromise);
|
|
527
|
+
}
|
|
528
|
+
try {
|
|
529
|
+
const result = fnOrPromise();
|
|
530
|
+
if (isPromiseLike(result)) {
|
|
531
|
+
return settlePromiseLike(result);
|
|
532
|
+
}
|
|
533
|
+
return [undefined, result];
|
|
534
|
+
} catch (error) {
|
|
535
|
+
return [toError(error), undefined];
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
function settlePromiseLike(thenable) {
|
|
539
|
+
return Promise.resolve(thenable).then((data) => [undefined, data]).catch((error) => [toError(error), undefined]);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
// ../common/src/entity-field-rules.ts
|
|
543
|
+
var MAX_SAFE_NUMERIC_BOUND = 9007199254740991;
|
|
544
|
+
var LENGTH_LIMIT_RANGES = {
|
|
545
|
+
STRING: [1, 4000],
|
|
546
|
+
MULTILINE_TEXT: [1, 1e4],
|
|
547
|
+
MULTILINE_MAX: [1, 131072]
|
|
548
|
+
};
|
|
549
|
+
var MAX_MULTILINE_MAX_FIELDS = 10;
|
|
550
|
+
function isNumber(v) {
|
|
551
|
+
return typeof v === "number" && Number.isFinite(v);
|
|
552
|
+
}
|
|
553
|
+
function findInvalidFieldConstraints(fields) {
|
|
554
|
+
for (const f of fields) {
|
|
555
|
+
if (typeof f !== "object" || f === null)
|
|
556
|
+
continue;
|
|
557
|
+
const rec = f;
|
|
558
|
+
const type = rec.type;
|
|
559
|
+
if (typeof type !== "string")
|
|
560
|
+
continue;
|
|
561
|
+
const fieldName = typeof rec.name === "string" ? rec.name : "<field>";
|
|
562
|
+
if (rec.lengthLimit !== undefined) {
|
|
563
|
+
if (!isNumber(rec.lengthLimit) || !Number.isInteger(rec.lengthLimit)) {
|
|
564
|
+
return {
|
|
565
|
+
message: `Field '${fieldName}' 'lengthLimit' must be an integer`,
|
|
566
|
+
instructions: "Pass a positive integer within the type's range (STRING 1-4000, MULTILINE_TEXT 1-10000, MULTILINE_MAX 1-131072 UTF-16 bytes)."
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
const range = LENGTH_LIMIT_RANGES[type];
|
|
570
|
+
if (range === undefined) {
|
|
571
|
+
return {
|
|
572
|
+
message: `Field '${fieldName}' of type '${type}' does not accept 'lengthLimit'`,
|
|
573
|
+
instructions: "'lengthLimit' applies only to STRING, MULTILINE_TEXT, and MULTILINE_MAX. Remove it or change the field type."
|
|
574
|
+
};
|
|
575
|
+
}
|
|
576
|
+
const [min, max] = range;
|
|
577
|
+
if (rec.lengthLimit < min || rec.lengthLimit > max) {
|
|
578
|
+
return {
|
|
579
|
+
message: `Field '${fieldName}' 'lengthLimit' ${rec.lengthLimit} is outside the allowed range for type '${type}'`,
|
|
580
|
+
instructions: `'lengthLimit' on '${type}' must be between ${min} and ${max}. MULTILINE_MAX 'lengthLimit' is a UTF-16 byte budget (≈2 per char).`
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
if (rec.maxValue !== undefined || rec.minValue !== undefined) {
|
|
585
|
+
if (type !== "DECIMAL" && type !== "AUTO_NUMBER") {
|
|
586
|
+
const which = rec.maxValue !== undefined ? "maxValue" : "minValue";
|
|
587
|
+
return {
|
|
588
|
+
message: `Field '${fieldName}' of type '${type}' does not accept '${which}'`,
|
|
589
|
+
instructions: "'minValue' and 'maxValue' apply only to DECIMAL and AUTO_NUMBER. Remove them or change the field type."
|
|
590
|
+
};
|
|
591
|
+
}
|
|
592
|
+
if (rec.maxValue !== undefined && !isNumber(rec.maxValue)) {
|
|
593
|
+
return {
|
|
594
|
+
message: `Field '${fieldName}' 'maxValue' must be a number`,
|
|
595
|
+
instructions: "Pass a numeric value."
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
if (rec.minValue !== undefined && !isNumber(rec.minValue)) {
|
|
599
|
+
return {
|
|
600
|
+
message: `Field '${fieldName}' 'minValue' must be a number`,
|
|
601
|
+
instructions: "Pass a numeric value."
|
|
602
|
+
};
|
|
603
|
+
}
|
|
604
|
+
const maxValue = rec.maxValue;
|
|
605
|
+
if (maxValue !== undefined && (maxValue > MAX_SAFE_NUMERIC_BOUND || maxValue < -MAX_SAFE_NUMERIC_BOUND)) {
|
|
606
|
+
return {
|
|
607
|
+
message: `Field '${fieldName}' 'maxValue' ${rec.maxValue} is outside the supported numeric range`,
|
|
608
|
+
instructions: `Use a value between ${-MAX_SAFE_NUMERIC_BOUND} and ${MAX_SAFE_NUMERIC_BOUND}.`
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
const minValue = rec.minValue;
|
|
612
|
+
if (minValue !== undefined && (minValue > MAX_SAFE_NUMERIC_BOUND || minValue < -MAX_SAFE_NUMERIC_BOUND)) {
|
|
613
|
+
return {
|
|
614
|
+
message: `Field '${fieldName}' 'minValue' ${rec.minValue} is outside the supported numeric range`,
|
|
615
|
+
instructions: `Use a value between ${-MAX_SAFE_NUMERIC_BOUND} and ${MAX_SAFE_NUMERIC_BOUND}.`
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
if (rec.maxValue !== undefined && rec.minValue !== undefined && rec.minValue > rec.maxValue) {
|
|
619
|
+
return {
|
|
620
|
+
message: `Field '${fieldName}' 'minValue' (${rec.minValue}) must not exceed 'maxValue' (${rec.maxValue})`,
|
|
621
|
+
instructions: "Adjust the bounds so 'minValue <= maxValue', or drop one of the two."
|
|
622
|
+
};
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
if (rec.decimalPrecision !== undefined) {
|
|
626
|
+
if (type !== "DECIMAL" && type !== "AUTO_NUMBER") {
|
|
627
|
+
return {
|
|
628
|
+
message: `Field '${fieldName}' of type '${type}' does not accept 'decimalPrecision'`,
|
|
629
|
+
instructions: "'decimalPrecision' applies only to DECIMAL and AUTO_NUMBER. Remove it or change the field type."
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
if (!isNumber(rec.decimalPrecision) || !Number.isInteger(rec.decimalPrecision) || rec.decimalPrecision < 0 || rec.decimalPrecision > 10) {
|
|
633
|
+
return {
|
|
634
|
+
message: `Field '${fieldName}' 'decimalPrecision' ${rec.decimalPrecision} is invalid`,
|
|
635
|
+
instructions: "'decimalPrecision' must be an integer between 0 and 10 (0 for whole numbers, 2 for money)."
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
return null;
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// ../common/src/entity-name-rules.ts
|
|
644
|
+
var RESERVED_SQL_KEYWORDS_LOWER = new Set(["group", "order"]);
|
|
645
|
+
var ENTITY_NAME_PATTERN = /^[a-zA-Z][a-zA-Z0-9_]{2,99}$/;
|
|
646
|
+
var FIELD_NAME_PATTERN = /^[a-zA-Z][a-zA-Z0-9]{2,99}$/;
|
|
647
|
+
var RESERVED_FIELD_NAMES_LOWER = new Set([
|
|
648
|
+
"id",
|
|
649
|
+
"createdby",
|
|
650
|
+
"createtime",
|
|
651
|
+
"updatedby",
|
|
652
|
+
"updatetime",
|
|
653
|
+
"recordowner",
|
|
654
|
+
"version"
|
|
655
|
+
]);
|
|
656
|
+
var RESERVED_KEYWORDS_LOWER = new Set([
|
|
657
|
+
"abstract",
|
|
658
|
+
"as",
|
|
659
|
+
"base",
|
|
660
|
+
"bool",
|
|
661
|
+
"break",
|
|
662
|
+
"byte",
|
|
663
|
+
"case",
|
|
664
|
+
"catch",
|
|
665
|
+
"char",
|
|
666
|
+
"checked",
|
|
667
|
+
"class",
|
|
668
|
+
"const",
|
|
669
|
+
"continue",
|
|
670
|
+
"decimal",
|
|
671
|
+
"default",
|
|
672
|
+
"delegate",
|
|
673
|
+
"do",
|
|
674
|
+
"double",
|
|
675
|
+
"else",
|
|
676
|
+
"enum",
|
|
677
|
+
"event",
|
|
678
|
+
"explicit",
|
|
679
|
+
"extern",
|
|
680
|
+
"false",
|
|
681
|
+
"finally",
|
|
682
|
+
"fixed",
|
|
683
|
+
"float",
|
|
684
|
+
"for",
|
|
685
|
+
"foreach",
|
|
686
|
+
"goto",
|
|
687
|
+
"if",
|
|
688
|
+
"implicit",
|
|
689
|
+
"in",
|
|
690
|
+
"int",
|
|
691
|
+
"interface",
|
|
692
|
+
"internal",
|
|
693
|
+
"is",
|
|
694
|
+
"lock",
|
|
695
|
+
"long",
|
|
696
|
+
"namespace",
|
|
697
|
+
"new",
|
|
698
|
+
"null",
|
|
699
|
+
"object",
|
|
700
|
+
"operator",
|
|
701
|
+
"out",
|
|
702
|
+
"override",
|
|
703
|
+
"params",
|
|
704
|
+
"private",
|
|
705
|
+
"protected",
|
|
706
|
+
"public",
|
|
707
|
+
"readonly",
|
|
708
|
+
"ref",
|
|
709
|
+
"return",
|
|
710
|
+
"sbyte",
|
|
711
|
+
"sealed",
|
|
712
|
+
"short",
|
|
713
|
+
"sizeof",
|
|
714
|
+
"stackalloc",
|
|
715
|
+
"static",
|
|
716
|
+
"string",
|
|
717
|
+
"struct",
|
|
718
|
+
"switch",
|
|
719
|
+
"this",
|
|
720
|
+
"throw",
|
|
721
|
+
"true",
|
|
722
|
+
"try",
|
|
723
|
+
"typeof",
|
|
724
|
+
"uint",
|
|
725
|
+
"ulong",
|
|
726
|
+
"unchecked",
|
|
727
|
+
"unsafe",
|
|
728
|
+
"ushort",
|
|
729
|
+
"using",
|
|
730
|
+
"virtual",
|
|
731
|
+
"void",
|
|
732
|
+
"volatile",
|
|
733
|
+
"while",
|
|
734
|
+
"addhandler",
|
|
735
|
+
"addressof",
|
|
736
|
+
"alias",
|
|
737
|
+
"and",
|
|
738
|
+
"andalso",
|
|
739
|
+
"boolean",
|
|
740
|
+
"byref",
|
|
741
|
+
"byval",
|
|
742
|
+
"call",
|
|
743
|
+
"cbool",
|
|
744
|
+
"cbyte",
|
|
745
|
+
"cchar",
|
|
746
|
+
"cdate",
|
|
747
|
+
"cdbl",
|
|
748
|
+
"cdec",
|
|
749
|
+
"cint",
|
|
750
|
+
"clng",
|
|
751
|
+
"cobj",
|
|
752
|
+
"csbyte",
|
|
753
|
+
"cshort",
|
|
754
|
+
"csng",
|
|
755
|
+
"cstr",
|
|
756
|
+
"ctype",
|
|
757
|
+
"cuint",
|
|
758
|
+
"culng",
|
|
759
|
+
"cushort",
|
|
760
|
+
"date",
|
|
761
|
+
"declare",
|
|
762
|
+
"dim",
|
|
763
|
+
"directcast",
|
|
764
|
+
"each",
|
|
765
|
+
"elseif",
|
|
766
|
+
"end",
|
|
767
|
+
"endif",
|
|
768
|
+
"erase",
|
|
769
|
+
"error",
|
|
770
|
+
"exit",
|
|
771
|
+
"friend",
|
|
772
|
+
"function",
|
|
773
|
+
"get",
|
|
774
|
+
"gettype",
|
|
775
|
+
"getxmlnamespace",
|
|
776
|
+
"global",
|
|
777
|
+
"gosub",
|
|
778
|
+
"goto",
|
|
779
|
+
"handles",
|
|
780
|
+
"implements",
|
|
781
|
+
"imports",
|
|
782
|
+
"inherits",
|
|
783
|
+
"integer",
|
|
784
|
+
"isnot",
|
|
785
|
+
"let",
|
|
786
|
+
"lib",
|
|
787
|
+
"like",
|
|
788
|
+
"loop",
|
|
789
|
+
"me",
|
|
790
|
+
"mod",
|
|
791
|
+
"module",
|
|
792
|
+
"mustinherit",
|
|
793
|
+
"mustoverride",
|
|
794
|
+
"mybase",
|
|
795
|
+
"myclass",
|
|
796
|
+
"narrowing",
|
|
797
|
+
"next",
|
|
798
|
+
"not",
|
|
799
|
+
"nothing",
|
|
800
|
+
"notinheritable",
|
|
801
|
+
"notoverridable",
|
|
802
|
+
"of",
|
|
803
|
+
"on",
|
|
804
|
+
"option",
|
|
805
|
+
"optional",
|
|
806
|
+
"or",
|
|
807
|
+
"orelse",
|
|
808
|
+
"overloads",
|
|
809
|
+
"overridable",
|
|
810
|
+
"overrides",
|
|
811
|
+
"paramarray",
|
|
812
|
+
"partial",
|
|
813
|
+
"property",
|
|
814
|
+
"raiseevent",
|
|
815
|
+
"redim",
|
|
816
|
+
"rem",
|
|
817
|
+
"removehandler",
|
|
818
|
+
"resume",
|
|
819
|
+
"select",
|
|
820
|
+
"set",
|
|
821
|
+
"shadows",
|
|
822
|
+
"shared",
|
|
823
|
+
"single",
|
|
824
|
+
"step",
|
|
825
|
+
"stop",
|
|
826
|
+
"structure",
|
|
827
|
+
"sub",
|
|
828
|
+
"synclock",
|
|
829
|
+
"then",
|
|
830
|
+
"to",
|
|
831
|
+
"trycast",
|
|
832
|
+
"uinteger",
|
|
833
|
+
"ushort",
|
|
834
|
+
"variant",
|
|
835
|
+
"wend",
|
|
836
|
+
"when",
|
|
837
|
+
"widening",
|
|
838
|
+
"with",
|
|
839
|
+
"withevents",
|
|
840
|
+
"writeonly",
|
|
841
|
+
"xor"
|
|
842
|
+
]);
|
|
843
|
+
function findReservedNameError(name, kind) {
|
|
844
|
+
if (kind === "field" && RESERVED_FIELD_NAMES_LOWER.has(name.toLowerCase())) {
|
|
845
|
+
return {
|
|
846
|
+
message: `Field name '${name}' is reserved`,
|
|
847
|
+
instructions: "The following field names are reserved by the platform (case-insensitive): Id, CreatedBy, CreateTime, UpdatedBy, UpdateTime, RecordOwner, Version. Pick a different name."
|
|
848
|
+
};
|
|
849
|
+
}
|
|
850
|
+
if (RESERVED_KEYWORDS_LOWER.has(name.toLowerCase())) {
|
|
851
|
+
return {
|
|
852
|
+
message: `${kind === "entity" ? "Entity" : kind === "field" ? "Field" : "Choice set"} name '${name}' is a reserved C# or VB keyword`,
|
|
853
|
+
instructions: "Reserved keywords are rejected with RESERVED_LANGUAGE_KEYWORDS. Pick a domain-specific rename, for example 'Case' -> 'WorkItem', 'Class' -> 'Category', 'New' -> 'IsNew'."
|
|
854
|
+
};
|
|
855
|
+
}
|
|
856
|
+
if (kind === "entity" && RESERVED_SQL_KEYWORDS_LOWER.has(name.toLowerCase())) {
|
|
857
|
+
return {
|
|
858
|
+
message: `Entity name '${name}' is a reserved SQL keyword`,
|
|
859
|
+
instructions: "The platform rejects 'Order' and 'Group' as entity names. Pick a domain-specific name such as 'PurchaseOrder' or 'TeamGroup'."
|
|
860
|
+
};
|
|
861
|
+
}
|
|
862
|
+
return null;
|
|
863
|
+
}
|
|
864
|
+
function validateNameFormat(name, kind) {
|
|
865
|
+
const pattern = kind === "field" ? FIELD_NAME_PATTERN : ENTITY_NAME_PATTERN;
|
|
866
|
+
if (pattern.test(name)) {
|
|
867
|
+
return null;
|
|
868
|
+
}
|
|
869
|
+
return {
|
|
870
|
+
message: `Invalid ${kind} name '${name}'`,
|
|
871
|
+
instructions: kind === "field" ? "Field names must start with a letter, contain only letters and digits (no underscores), and be 3-100 characters long." : "Names must start with a letter, contain only letters, digits, and underscores, and be 3-100 characters long."
|
|
872
|
+
};
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
export { pseudonymize, singleton, recordSuppliedArgumentValues, releaseSuppliedArgumentValues, redactSpanName, redactHttpDependencyName, redactError, redactProperties, describeThrownValue, catchError, MAX_MULTILINE_MAX_FIELDS, findInvalidFieldConstraints, findReservedNameError, validateNameFormat };
|
|
876
|
+
|
|
877
|
+
//# debugId=8CE5A082F4068C5864756E2164756E21
|