@milaboratories/pl-client 3.14.7 → 3.16.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/core/PromiseTracker.d.ts +1 -2
- package/dist/core/PromiseTracker.d.ts.map +1 -1
- package/dist/core/abstract_stream.d.ts +2 -3
- package/dist/core/abstract_stream.d.ts.map +1 -1
- package/dist/core/auth.d.ts +2 -4
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/cache.d.ts +1 -3
- package/dist/core/cache.d.ts.map +1 -1
- package/dist/core/capabilities.d.ts +2 -3
- package/dist/core/capabilities.d.ts.map +1 -1
- package/dist/core/client.cjs +7 -0
- package/dist/core/client.cjs.map +1 -1
- package/dist/core/client.d.ts +8 -5
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +7 -0
- package/dist/core/client.js.map +1 -1
- package/dist/core/config.d.ts +29 -31
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/default_client.d.ts +2 -4
- package/dist/core/default_client.d.ts.map +1 -1
- package/dist/core/driver.d.ts +4 -6
- package/dist/core/driver.d.ts.map +1 -1
- package/dist/core/errors.d.ts +20 -22
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/final.d.ts +4 -5
- package/dist/core/final.d.ts.map +1 -1
- package/dist/core/ll_client.cjs +45 -18
- package/dist/core/ll_client.cjs.map +1 -1
- package/dist/core/ll_client.d.ts +21 -10
- package/dist/core/ll_client.d.ts.map +1 -1
- package/dist/core/ll_client.js +45 -18
- package/dist/core/ll_client.js.map +1 -1
- package/dist/core/ll_transaction.d.ts +4 -6
- package/dist/core/ll_transaction.d.ts.map +1 -1
- package/dist/core/stat.d.ts +2 -3
- package/dist/core/stat.d.ts.map +1 -1
- package/dist/core/transaction.cjs +2 -1
- package/dist/core/transaction.cjs.map +1 -1
- package/dist/core/transaction.d.ts +30 -32
- package/dist/core/transaction.d.ts.map +1 -1
- package/dist/core/transaction.js +2 -1
- package/dist/core/transaction.js.map +1 -1
- package/dist/core/tree_filter.d.ts +14 -10
- package/dist/core/tree_filter.d.ts.map +1 -1
- package/dist/core/types.d.ts +54 -55
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/unauth_client.cjs +79 -32
- package/dist/core/unauth_client.cjs.map +1 -1
- package/dist/core/unauth_client.d.ts +53 -20
- package/dist/core/unauth_client.d.ts.map +1 -1
- package/dist/core/unauth_client.js +79 -32
- package/dist/core/unauth_client.js.map +1 -1
- package/dist/core/user_resources.cjs +23 -0
- package/dist/core/user_resources.cjs.map +1 -1
- package/dist/core/user_resources.d.ts +33 -7
- package/dist/core/user_resources.d.ts.map +1 -1
- package/dist/core/user_resources.js +23 -0
- package/dist/core/user_resources.js.map +1 -1
- package/dist/core/wire.d.ts +5 -7
- package/dist/core/wire.d.ts.map +1 -1
- package/dist/helpers/pl.d.ts +32 -34
- package/dist/helpers/pl.d.ts.map +1 -1
- package/dist/helpers/poll.d.ts +8 -9
- package/dist/helpers/poll.d.ts.map +1 -1
- package/dist/helpers/tx_helpers.d.ts +2 -4
- package/dist/helpers/tx_helpers.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts +2 -4
- package/dist/proto-grpc/github.com/googleapis/googleapis/google/rpc/status.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs +310 -15
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs +19 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.cjs.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts +29 -5
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js +19 -3
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts +2336 -429
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js +309 -16
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.js.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts +51 -30
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api_types.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts +7 -9
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/base_types.d.ts.map +1 -1
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts +6 -8
- package/dist/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/resource_types.d.ts.map +1 -1
- package/dist/proto-grpc/google/protobuf/any.d.ts +2 -4
- package/dist/proto-grpc/google/protobuf/any.d.ts.map +1 -1
- package/dist/proto-grpc/google/protobuf/duration.d.ts +2 -4
- package/dist/proto-grpc/google/protobuf/duration.d.ts.map +1 -1
- package/dist/proto-grpc/google/protobuf/timestamp.d.ts +2 -4
- package/dist/proto-grpc/google/protobuf/timestamp.d.ts.map +1 -1
- package/dist/proto-grpc/google/rpc/code.d.ts +1 -2
- package/dist/proto-grpc/google/rpc/code.d.ts.map +1 -1
- package/dist/proto-rest/index.d.ts +6 -8
- package/dist/proto-rest/index.d.ts.map +1 -1
- package/dist/proto-rest/plapi.d.ts +248 -123
- package/dist/proto-rest/plapi.d.ts.map +1 -1
- package/dist/test/tcp-proxy.d.ts +3 -5
- package/dist/test/tcp-proxy.d.ts.map +1 -1
- package/dist/test/test_config.d.ts +13 -14
- package/dist/test/test_config.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/core/client.ts +9 -0
- package/src/core/ll_client.ts +40 -13
- package/src/core/transaction.ts +2 -0
- package/src/core/unauth_client.test.ts +69 -1
- package/src/core/unauth_client.ts +108 -34
- package/src/core/unauth_client_branch.test.ts +416 -5
- package/src/core/user_resources.ts +39 -0
- package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.client.ts +34 -3
- package/src/proto-grpc/github.com/milaboratory/pl/plapi/plapiproto/api.ts +431 -15
- package/src/proto-rest/plapi.ts +8 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plapi.d.ts","names":[],"sources":["../../src/proto-rest/plapi.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plapi.d.ts","names":[],"sources":["../../src/proto-rest/plapi.ts"],"mappings":";;;;;iBAKiB;EACf;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;IAMA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;IAMA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;;IAGF,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;IAMA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;;IAOA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;IAMA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN,QAAQ;IACR;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN,QAAQ;IACR;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;IAEA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;IAMA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;;;;;;;;;;;;;;;;IAiBA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;IACA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;;IAGF,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;;IAGF,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;IAEA,MAAM;IACN;IACA;IACA;IACA;IACA;;EAEF;IACE;MACE;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C;IACvC;MACE;;IAEF,qBAAqB;;EAEvB;EACA;EACA;EACA;EACA;;iBAGe;EACf;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;IACA;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB;;;;;EAK5B;IACE;MACE;MACA;MACA;MACA;;IAEF;MACE;QACE,oBAAoB;;;IAGxB;;MAEE;QACE;WACG;;QAEH;UACE,oBAAoB;;;;MAIxB;QACE;WACG;;QAEH;UACE,oBAAoB"}
|
package/dist/test/tcp-proxy.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
|
-
|
|
3
2
|
//#region src/test/tcp-proxy.d.ts
|
|
4
|
-
type TcpProxyOptions = {
|
|
3
|
+
export type TcpProxyOptions = {
|
|
5
4
|
port?: number;
|
|
6
5
|
targetPort: number;
|
|
7
6
|
latency: number;
|
|
8
7
|
verbose?: boolean;
|
|
9
8
|
};
|
|
10
|
-
declare function startTcpProxy(options: TcpProxyOptions): Promise<{
|
|
9
|
+
export declare function startTcpProxy(options: TcpProxyOptions): Promise<{
|
|
11
10
|
server: net.Server;
|
|
12
11
|
readonly port: number;
|
|
13
12
|
setLatency: (latency: number) => void;
|
|
@@ -15,7 +14,6 @@ declare function startTcpProxy(options: TcpProxyOptions): Promise<{
|
|
|
15
14
|
disconnectAll: (delayMs?: number | undefined) => Promise<void>;
|
|
16
15
|
close: () => Promise<void>;
|
|
17
16
|
}>;
|
|
18
|
-
type TestTcpProxy = Awaited<ReturnType<typeof startTcpProxy>>;
|
|
17
|
+
export type TestTcpProxy = Awaited<ReturnType<typeof startTcpProxy>>;
|
|
19
18
|
//#endregion
|
|
20
|
-
export { TcpProxyOptions, TestTcpProxy, startTcpProxy };
|
|
21
19
|
//# sourceMappingURL=tcp-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-proxy.d.ts","names":[],"sources":["../../src/test/tcp-proxy.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"tcp-proxy.d.ts","names":[],"sources":["../../src/test/tcp-proxy.ts"],"mappings":";;YAOY;EACV;EACA;EACA;EACA;;wBAGoB,cAAc,SAAS,kBAAe;;;;;mDAiBF;;;YA+F9C,eAAe,QAAQ,kBAAkB"}
|
|
@@ -2,41 +2,40 @@ import { AuthOps, PlClientConfig } from "../core/config.js";
|
|
|
2
2
|
import { LLPlClient } from "../core/ll_client.js";
|
|
3
3
|
import { PlClient } from "../core/client.js";
|
|
4
4
|
import { TestTcpProxy, startTcpProxy } from "./tcp-proxy.js";
|
|
5
|
-
|
|
6
|
-
//#region src/test/test_config.d.ts
|
|
7
5
|
declare namespace test_config_d_exports {
|
|
8
6
|
export { TEST_REQUEST_TIMEOUT, TestConfig, TestTcpProxy, WithTempRootOptions, getTestClient, getTestClientConf, getTestConfig, getTestLLClient, plAddressToTestConfig, withTempRoot };
|
|
9
7
|
}
|
|
10
|
-
interface TestConfig {
|
|
8
|
+
export interface TestConfig {
|
|
11
9
|
address: string;
|
|
12
10
|
test_proxy?: string;
|
|
13
11
|
test_user?: string;
|
|
14
12
|
test_password?: string;
|
|
15
13
|
}
|
|
16
|
-
declare function getTestConfig(): TestConfig;
|
|
14
|
+
export declare function getTestConfig(): TestConfig;
|
|
17
15
|
/** Default request timeout for tests (ms) */
|
|
18
|
-
declare const TEST_REQUEST_TIMEOUT = 500;
|
|
16
|
+
export declare const TEST_REQUEST_TIMEOUT = 500;
|
|
19
17
|
/** Returns PlClientConfig with reduced timeout for tests */
|
|
20
|
-
declare function plAddressToTestConfig(address: string): PlClientConfig;
|
|
21
|
-
declare function getTestClientConf(): Promise<{
|
|
18
|
+
export declare function plAddressToTestConfig(address: string): PlClientConfig;
|
|
19
|
+
export declare function getTestClientConf(): Promise<{
|
|
22
20
|
conf: PlClientConfig;
|
|
23
21
|
auth: AuthOps;
|
|
24
22
|
}>;
|
|
25
|
-
declare function getTestLLClient(confOverrides?: Partial<PlClientConfig>): Promise<LLPlClient>;
|
|
26
|
-
declare function getTestClient(alternativeRoot?: string, confOverrides?: Partial<PlClientConfig>): Promise<PlClient>;
|
|
27
|
-
type WithTempRootOptions = {
|
|
23
|
+
export declare function getTestLLClient(confOverrides?: Partial<PlClientConfig>): Promise<LLPlClient>;
|
|
24
|
+
export declare function getTestClient(alternativeRoot?: string, confOverrides?: Partial<PlClientConfig>): Promise<PlClient>;
|
|
25
|
+
export type WithTempRootOptions = {
|
|
28
26
|
/** If true and PL_ADDRESS is http://localhost or http://127.0.0.1:<port>,
|
|
29
27
|
* a TCP proxy will be started and PL client will connect through it. */
|
|
30
|
-
viaTcpProxy: true;
|
|
28
|
+
viaTcpProxy: true;
|
|
29
|
+
/** Artificial latency for proxy (ms). Default 0 */
|
|
31
30
|
proxyLatencyMs?: number;
|
|
32
31
|
} | {
|
|
33
32
|
viaTcpProxy?: undefined;
|
|
34
33
|
};
|
|
35
|
-
declare function withTempRoot<T>(body: (pl: PlClient) => Promise<T>): Promise<T | void>;
|
|
36
|
-
declare function withTempRoot<T>(body: (pl: PlClient, proxy: Awaited<ReturnType<typeof startTcpProxy>>) => Promise<T>, options: {
|
|
34
|
+
export declare function withTempRoot<T>(body: (pl: PlClient) => Promise<T>): Promise<T | void>;
|
|
35
|
+
export declare function withTempRoot<T>(body: (pl: PlClient, proxy: Awaited<ReturnType<typeof startTcpProxy>>) => Promise<T>, options: {
|
|
37
36
|
viaTcpProxy: true;
|
|
38
37
|
proxyLatencyMs?: number;
|
|
39
38
|
}): Promise<T>;
|
|
40
39
|
//#endregion
|
|
41
|
-
export {
|
|
40
|
+
export { type TestTcpProxy, test_config_d_exports };
|
|
42
41
|
//# sourceMappingURL=test_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_config.d.ts","names":[],"sources":["../../src/test/test_config.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"test_config.d.ts","names":[],"sources":["../../src/test/test_config.ts"],"mappings":";;;;;;;iBAgBiB;EACf;EACA;EACA;EACA;;wBAac,iBAAiB;;qBAsBpB;;wBAGG,sBAAsB,kBAAkB;wBAkDlC,qBAAqB;EAAU,MAAM;EAAgB,MAAM;;wBAmE3D,gBAAgB,gBAAe,QAAQ,kBAAoB,QAAA;wBAK3D,cACpB,0BACA,gBAAe,QAAQ,kBAAoB,QAAA;YAQjC;;;EAIN;;EAEA;;EAGA;;wBAGgB,aAAa,GAAG,OAAO,IAAI,aAAa,QAAQ,KAAK,QAAQ;wBAE7D,aAAa,GACjC,OAAO,IAAI,UAAU,OAAO,QAAQ,kBAAkB,oBAAoB,QAAQ,IAClF;EACE;EACA;IAED,QAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-client",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.16.0",
|
|
4
4
|
"description": "New TS/JS client for Platform API",
|
|
5
5
|
"files": [
|
|
6
6
|
"./dist/**/*",
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
"@protobuf-ts/plugin": "2.11.1",
|
|
39
39
|
"@types/node": "~24.5.2",
|
|
40
40
|
"@vitest/coverage-istanbul": "^4.1.3",
|
|
41
|
-
"openapi-typescript": "^7.
|
|
42
|
-
"typescript": "
|
|
41
|
+
"openapi-typescript": "^7.13.0",
|
|
42
|
+
"typescript": "7.0.2",
|
|
43
43
|
"vitest": "^4.1.3",
|
|
44
|
-
"@milaboratories/build-configs": "2.0.
|
|
45
|
-
"@milaboratories/ts-
|
|
46
|
-
"@milaboratories/ts-
|
|
44
|
+
"@milaboratories/build-configs": "2.0.1",
|
|
45
|
+
"@milaboratories/ts-builder": "1.7.2",
|
|
46
|
+
"@milaboratories/ts-configs": "1.4.0"
|
|
47
47
|
},
|
|
48
48
|
"engines": {
|
|
49
49
|
"node": ">=22.19.0"
|
package/src/core/client.ts
CHANGED
|
@@ -33,6 +33,7 @@ import type { WireConnection } from "./wire";
|
|
|
33
33
|
import { advisoryLock } from "./advisory_locks";
|
|
34
34
|
import { plAddressToConfig } from "./config";
|
|
35
35
|
import { UserResources } from "./user_resources";
|
|
36
|
+
import type { UserDeletionReport } from "./user_resources";
|
|
36
37
|
import type { BackendCapability } from "./capabilities";
|
|
37
38
|
|
|
38
39
|
export type TxOps = PlCallOps & {
|
|
@@ -207,6 +208,14 @@ export class PlClient {
|
|
|
207
208
|
return await this.ll.listUsers();
|
|
208
209
|
}
|
|
209
210
|
|
|
211
|
+
/**
|
|
212
|
+
* Deletes a user account and its root resource — with the root, everything still attached
|
|
213
|
+
* under it. Destructive and irreversible; see {@link UserResources.deleteUser}.
|
|
214
|
+
*/
|
|
215
|
+
public async deleteUser(login: string): Promise<UserDeletionReport> {
|
|
216
|
+
return await this.userResources.deleteUser(login);
|
|
217
|
+
}
|
|
218
|
+
|
|
210
219
|
/**
|
|
211
220
|
* Returns the user root SignedResourceId via ListUserResources.
|
|
212
221
|
* @param opts.login - target user login; omit for the authenticated user.
|
package/src/core/ll_client.ts
CHANGED
|
@@ -645,15 +645,19 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
|
|
648
|
-
/** Login via username/password. Returns a fresh JWT. Backend creates a new session per call.
|
|
648
|
+
/** Login via username/password. Returns a fresh JWT. Backend creates a new session per call.
|
|
649
|
+
* `opts.idP` names the advertised login method to route to; omitted, the backend keeps its
|
|
650
|
+
* current first-match behaviour. */
|
|
649
651
|
public async loginBasic(
|
|
650
652
|
user: string,
|
|
651
653
|
password: string,
|
|
652
|
-
opts: { ttlSeconds?: bigint; role?: AuthAPI_Role } = {},
|
|
654
|
+
opts: { ttlSeconds?: bigint; role?: AuthAPI_Role; idP?: string } = {},
|
|
653
655
|
): Promise<string> {
|
|
654
656
|
const cl = this.clientProvider.get();
|
|
655
657
|
const ttl = opts.ttlSeconds ?? BigInt(this.conf.authTTLSeconds);
|
|
656
658
|
const role = opts.role ?? AuthAPI_Role.UNSPECIFIED;
|
|
659
|
+
const basic =
|
|
660
|
+
opts.idP === undefined ? { login: user, password } : { login: user, password, idp: opts.idP };
|
|
657
661
|
|
|
658
662
|
if (cl instanceof GrpcPlApiClient) {
|
|
659
663
|
return (
|
|
@@ -661,7 +665,7 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
661
665
|
{
|
|
662
666
|
credentials: {
|
|
663
667
|
oneofKind: "basic",
|
|
664
|
-
basic
|
|
668
|
+
basic,
|
|
665
669
|
},
|
|
666
670
|
expiration: { seconds: ttl, nanos: 0 },
|
|
667
671
|
requestedRole: role,
|
|
@@ -674,7 +678,7 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
674
678
|
// openapi-typescript generated all body fields as required, but Login.Request
|
|
675
679
|
// has a credentials oneof — only one of `basic`/`token` is sent. Cast around it.
|
|
676
680
|
body: {
|
|
677
|
-
basic
|
|
681
|
+
basic,
|
|
678
682
|
expiration: `${ttl}s`,
|
|
679
683
|
requestedRole: role,
|
|
680
684
|
} as any,
|
|
@@ -723,16 +727,19 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
723
727
|
}
|
|
724
728
|
|
|
725
729
|
/** Login via SSO: forwards the raw IdP /token JSON body to the backend.
|
|
726
|
-
* Backend validates signature + nonce + audience and mints a Platforma JWT.
|
|
727
|
-
|
|
730
|
+
* Backend validates signature + nonce + audience and mints a Platforma JWT. `idP` names the
|
|
731
|
+
* advertised login method to route to; omitted, the backend keeps its current first-match
|
|
732
|
+
* behaviour. */
|
|
733
|
+
public async loginSSO(tokenResponse: Uint8Array, idP?: string): Promise<string> {
|
|
728
734
|
const cl = this.clientProvider.get();
|
|
735
|
+
const sso = idP === undefined ? { tokenResponse } : { tokenResponse, idp: idP };
|
|
729
736
|
if (cl instanceof GrpcPlApiClient) {
|
|
730
737
|
return (
|
|
731
738
|
await cl.login(
|
|
732
739
|
{
|
|
733
740
|
credentials: {
|
|
734
741
|
oneofKind: "sso",
|
|
735
|
-
sso
|
|
742
|
+
sso,
|
|
736
743
|
},
|
|
737
744
|
},
|
|
738
745
|
{ timeout: DEFAULT_LOGIN_TIMEOUT },
|
|
@@ -741,7 +748,7 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
741
748
|
} else {
|
|
742
749
|
const resp = cl.POST("/v1/auth/login", {
|
|
743
750
|
body: {
|
|
744
|
-
sso: { tokenResponse: Buffer.from(tokenResponse).toString("base64") },
|
|
751
|
+
sso: { ...sso, tokenResponse: Buffer.from(tokenResponse).toString("base64") },
|
|
745
752
|
} as any,
|
|
746
753
|
});
|
|
747
754
|
return notEmpty((await resp).data, "REST: empty response for SSO login request").token;
|
|
@@ -750,11 +757,16 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
750
757
|
|
|
751
758
|
/** Request a one-time PKCE nonce + its expiry from the backend. The desktop is
|
|
752
759
|
* expected to place the nonce verbatim into the OIDC auth-request before
|
|
753
|
-
* redirecting to the IdP; the backend enforces the expiry on {@link loginSSO}.
|
|
754
|
-
|
|
760
|
+
* redirecting to the IdP; the backend enforces the expiry on {@link loginSSO}. `idP` names the
|
|
761
|
+
* advertised login method to route to; omitted, the backend keeps its current first-match
|
|
762
|
+
* behaviour. */
|
|
763
|
+
public async beginSSOLogin(
|
|
764
|
+
idP?: string,
|
|
765
|
+
): Promise<{ nonce: string; expiresAt: Date; clientSecret?: string }> {
|
|
755
766
|
const cl = this.clientProvider.get();
|
|
767
|
+
const request = idP === undefined ? {} : { idp: idP };
|
|
756
768
|
if (cl instanceof GrpcPlApiClient) {
|
|
757
|
-
const resp = (await cl.beginSSOLogin(
|
|
769
|
+
const resp = (await cl.beginSSOLogin(request).response).flow;
|
|
758
770
|
if (resp.oneofKind !== "publicPkce") {
|
|
759
771
|
throw new Error(`beginSSOLogin: unsupported flow ${resp.oneofKind}`);
|
|
760
772
|
}
|
|
@@ -766,7 +778,7 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
766
778
|
};
|
|
767
779
|
} else {
|
|
768
780
|
const wsResponse = notEmpty(
|
|
769
|
-
(await cl.POST("/v1/auth/sso/begin-login", { body:
|
|
781
|
+
(await cl.POST("/v1/auth/sso/begin-login", { body: request as any })).data,
|
|
770
782
|
"REST: empty response for beginSSOLogin request",
|
|
771
783
|
);
|
|
772
784
|
const pkce = notEmpty(wsResponse.publicPkce, "REST: missing publicPkce in beginSSOLogin");
|
|
@@ -955,7 +967,7 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
955
967
|
// while protobuf-ts models it as a discriminated union. Reshape per item.
|
|
956
968
|
resp = {
|
|
957
969
|
methods: (wsResponse.methods ?? []).map((m): grpcTypes.AuthAPI_ListMethods_MethodInfo => {
|
|
958
|
-
const base = { id: m.id, description: m.description };
|
|
970
|
+
const base = { id: m.id, description: m.description, title: m.title };
|
|
959
971
|
if (m.basic !== undefined) {
|
|
960
972
|
return { ...base, method: { oneofKind: "basic", basic: m.basic } };
|
|
961
973
|
}
|
|
@@ -1077,6 +1089,21 @@ export class LLPlClient implements WireClientProviderFactory {
|
|
|
1077
1089
|
return (await cl.listUsers({})).response.users;
|
|
1078
1090
|
}
|
|
1079
1091
|
|
|
1092
|
+
/** Deletes a user account: the record, its identity-index entries (login, email and any
|
|
1093
|
+
* alternative of either), its grants, and its root resource with everything still attached
|
|
1094
|
+
* under it. Admin/controller credentials only, and irreversible — re-attach anything worth
|
|
1095
|
+
* keeping to another user's root first.
|
|
1096
|
+
* gRPC-only (unary, no REST binding), like {@link listUsers}. */
|
|
1097
|
+
public async deleteUser(login: string): Promise<grpcTypes.AuthAPI_DeleteUser_Response> {
|
|
1098
|
+
const cl = this.clientProvider.get();
|
|
1099
|
+
|
|
1100
|
+
if (!(cl instanceof GrpcPlApiClient)) {
|
|
1101
|
+
throw new Error("DeleteUser requires gRPC wire protocol; REST is not supported");
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
return (await cl.deleteUser({ login })).response;
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1080
1107
|
public async txSync(txId: bigint): Promise<void> {
|
|
1081
1108
|
const cl = this.clientProvider.get();
|
|
1082
1109
|
if (cl instanceof GrpcPlApiClient) {
|
package/src/core/transaction.ts
CHANGED
|
@@ -1238,6 +1238,8 @@ export class PlTransaction {
|
|
|
1238
1238
|
includeKv: opts?.includeKv ?? false,
|
|
1239
1239
|
maxDepth: opts?.maxDepth,
|
|
1240
1240
|
showSoftDeletes: false,
|
|
1241
|
+
// Empty token requests the full tree — this call has no continuation to resume.
|
|
1242
|
+
changedSinceToken: new Uint8Array(0),
|
|
1241
1243
|
},
|
|
1242
1244
|
});
|
|
1243
1245
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { UnauthenticatedPlClient } from "./unauth_client";
|
|
2
2
|
import { getTestConfig, plAddressToTestConfig } from "../test/test_config";
|
|
3
|
-
import { UnauthenticatedError } from "./errors";
|
|
3
|
+
import { UnauthenticatedError, isUnimplementedError } from "./errors";
|
|
4
4
|
import { test, expect } from "vitest";
|
|
5
5
|
|
|
6
6
|
test("ping test", async () => {
|
|
@@ -30,3 +30,71 @@ test("wrong login", async () => {
|
|
|
30
30
|
UnauthenticatedError,
|
|
31
31
|
);
|
|
32
32
|
});
|
|
33
|
+
|
|
34
|
+
// --- multi-method login ---
|
|
35
|
+
//
|
|
36
|
+
// These cases assume the backend is configured with (at least) two htpasswd
|
|
37
|
+
// login methods whose config `name` values differ but which both accept the
|
|
38
|
+
// same PL_TEST_USER/PL_TEST_PASSWORD credentials — the id
|
|
39
|
+
// is the only thing distinguishing them.
|
|
40
|
+
|
|
41
|
+
/** Runs every multi-method case against one client, gRPC or REST alike. */
|
|
42
|
+
async function runMultiMethodCases(address: string) {
|
|
43
|
+
const testConfig = getTestConfig();
|
|
44
|
+
if (testConfig.test_user === undefined || testConfig.test_password === undefined) {
|
|
45
|
+
console.log("skipped");
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const client = await UnauthenticatedPlClient.build(plAddressToTestConfig(address));
|
|
49
|
+
|
|
50
|
+
const basicMethods = client.loginMethods().filter((m) => m.kind === "basic");
|
|
51
|
+
expect(basicMethods.length).toBeGreaterThanOrEqual(2);
|
|
52
|
+
// The driver's fixed description is the same string on every htpasswd method — only
|
|
53
|
+
// the id tells the two apart.
|
|
54
|
+
expect(basicMethods[0].description).toBe(basicMethods[1].description);
|
|
55
|
+
expect(basicMethods[0].id).not.toBe(basicMethods[1].id);
|
|
56
|
+
|
|
57
|
+
expect(client.supportedAuthSchemes.basic).toBe(true);
|
|
58
|
+
|
|
59
|
+
const secondMethod = basicMethods[1];
|
|
60
|
+
const picked = await client.login(
|
|
61
|
+
testConfig.test_user,
|
|
62
|
+
testConfig.test_password,
|
|
63
|
+
secondMethod.id,
|
|
64
|
+
);
|
|
65
|
+
expect(picked.jwtToken).not.toBe("");
|
|
66
|
+
|
|
67
|
+
const unpicked = await client.login(testConfig.test_user, testConfig.test_password);
|
|
68
|
+
expect(unpicked.jwtToken).not.toBe("");
|
|
69
|
+
|
|
70
|
+
await expect(
|
|
71
|
+
client.login(testConfig.test_user, testConfig.test_password, "no-such-method"),
|
|
72
|
+
).rejects.toThrow();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Skipped: this environment's backend cannot be configured with two htpasswd login methods.
|
|
76
|
+
test.skip("loginMethods and login address two identically-described htpasswd methods by id (gRPC)", async () => {
|
|
77
|
+
const testConfig = getTestConfig();
|
|
78
|
+
await runMultiMethodCases(testConfig.address);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Skipped: this environment's backend cannot be configured with two htpasswd login methods.
|
|
82
|
+
test.skip("loginMethods and login address two identically-described htpasswd methods by id (REST)", async () => {
|
|
83
|
+
const testConfig = getTestConfig();
|
|
84
|
+
const separator = testConfig.address.includes("?") ? "&" : "?";
|
|
85
|
+
await runMultiMethodCases(`${testConfig.address}${separator}wire-protocol=rest`);
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
test("beginSSOLogin rejects an id no configured method carries, and reports no SSO configured when unpicked", async () => {
|
|
89
|
+
const testConfig = getTestConfig();
|
|
90
|
+
const client = await UnauthenticatedPlClient.build(plAddressToTestConfig(testConfig.address));
|
|
91
|
+
|
|
92
|
+
await expect(client.beginSSOLogin("no-such-method")).rejects.toThrow();
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
await client.beginSSOLogin();
|
|
96
|
+
throw new Error("expected beginSSOLogin() to reject on a server with no SSO method configured");
|
|
97
|
+
} catch (e) {
|
|
98
|
+
expect(isUnimplementedError(e)).toBe(true);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
@@ -18,6 +18,7 @@ export type SSOFlowType = "public_pkce";
|
|
|
18
18
|
* may surface (`userIdClaim`, `groupsClaim`). */
|
|
19
19
|
export type SSOAuthMethod = {
|
|
20
20
|
id: string;
|
|
21
|
+
title: string;
|
|
21
22
|
description: string;
|
|
22
23
|
issuer: string;
|
|
23
24
|
clientId: string;
|
|
@@ -48,6 +49,14 @@ export type SSOLoginAttempt = {
|
|
|
48
49
|
clientSecret?: string;
|
|
49
50
|
};
|
|
50
51
|
|
|
52
|
+
/** One login method the backend advertises, of any kind. Every advertised method keeps its own
|
|
53
|
+
* `id`, `title`, `description` and kind. Two same-kind methods, such as two LDAP directories, are
|
|
54
|
+
* two entries a caller can name apart and never collapsed into one. See {@link UnauthenticatedPlClient.loginMethods}. */
|
|
55
|
+
export type LoginMethod =
|
|
56
|
+
| { kind: "basic"; id: string; title: string; description: string }
|
|
57
|
+
| { kind: "token"; id: string; title: string; description: string }
|
|
58
|
+
| ({ kind: "sso" } & SSOAuthMethod);
|
|
59
|
+
|
|
51
60
|
/** Primarily used for initial authentication (login) */
|
|
52
61
|
export class UnauthenticatedPlClient {
|
|
53
62
|
public readonly ll: LLPlClient;
|
|
@@ -82,7 +91,9 @@ export class UnauthenticatedPlClient {
|
|
|
82
91
|
|
|
83
92
|
/** Classifies the advertised authentication methods by credential scheme.
|
|
84
93
|
* On legacy backends (no auth:v2) the typed oneof is empty; callers fall through to {@link login}
|
|
85
|
-
* which uses the legacy GetJWTToken path.
|
|
94
|
+
* which uses the legacy GetJWTToken path.
|
|
95
|
+
* @deprecated collapses every basic-kind method into one boolean; use {@link loginMethods} to
|
|
96
|
+
* see each advertised method's own id. `login()` still reads this to choose the credential path. */
|
|
86
97
|
public get supportedAuthSchemes(): { basic: boolean; token: boolean } {
|
|
87
98
|
const result = { basic: false, token: false };
|
|
88
99
|
for (const m of this.ll.authMethodsSync.methods) {
|
|
@@ -92,8 +103,37 @@ export class UnauthenticatedPlClient {
|
|
|
92
103
|
return result;
|
|
93
104
|
}
|
|
94
105
|
|
|
106
|
+
/** Builds the {@link SSOAuthMethod} projection an advertised SSO entry carries, or `undefined`
|
|
107
|
+
* for a flow no client here can drive. Shared by {@link ssoConfig} and {@link loginMethods},
|
|
108
|
+
* which each apply their own rule for an unsupported flow. */
|
|
109
|
+
private toSSOAuthMethod(
|
|
110
|
+
method: AuthAPI_ListMethods_Response["methods"][number],
|
|
111
|
+
): SSOAuthMethod | undefined {
|
|
112
|
+
if (method.method.oneofKind !== "sso") return undefined;
|
|
113
|
+
const sso = method.method.sso;
|
|
114
|
+
if (sso.flowType !== AuthAPI_ListMethods_SSOAuthMethod_FlowType.PUBLIC_PKCE) return undefined;
|
|
115
|
+
return {
|
|
116
|
+
id: method.id,
|
|
117
|
+
title: method.title || method.description || method.id,
|
|
118
|
+
description: method.description,
|
|
119
|
+
issuer: sso.issuer,
|
|
120
|
+
clientId: sso.clientId,
|
|
121
|
+
scopes: sso.scopes,
|
|
122
|
+
resource: sso.resource,
|
|
123
|
+
prompt: sso.prompt,
|
|
124
|
+
redirectPorts: sso.redirectPorts,
|
|
125
|
+
subjectTokenSource: sso.subjectTokenSource,
|
|
126
|
+
userIdClaim: sso.userIdClaim,
|
|
127
|
+
groupsClaim: sso.groupsClaim,
|
|
128
|
+
accessType: sso.accessType || undefined,
|
|
129
|
+
flowType: "public_pkce",
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
95
133
|
/** Projection of the first advertised SSO method, derived from {@link authMethodsSync}.
|
|
96
|
-
* v1: at most one SSO method per deployment, so callers do not need to discriminate.
|
|
134
|
+
* v1: at most one SSO method per deployment, so callers do not need to discriminate.
|
|
135
|
+
* @deprecated surfaces only the first advertised SSO method; use {@link loginMethods} to see
|
|
136
|
+
* every advertised method, of every kind. */
|
|
97
137
|
public ssoConfig(): SSOAuthMethod | undefined {
|
|
98
138
|
for (const method of this.ll.authMethodsSync.methods) {
|
|
99
139
|
if (method.method.oneofKind !== "sso") continue;
|
|
@@ -101,42 +141,65 @@ export class UnauthenticatedPlClient {
|
|
|
101
141
|
if (sso.flowType !== AuthAPI_ListMethods_SSOAuthMethod_FlowType.PUBLIC_PKCE) {
|
|
102
142
|
throw new Error(`ssoConfig: unsupported SSO flow type ${sso.flowType}`);
|
|
103
143
|
}
|
|
104
|
-
return
|
|
105
|
-
id: method.id,
|
|
106
|
-
description: method.description,
|
|
107
|
-
issuer: sso.issuer,
|
|
108
|
-
clientId: sso.clientId,
|
|
109
|
-
scopes: sso.scopes,
|
|
110
|
-
resource: sso.resource,
|
|
111
|
-
prompt: sso.prompt,
|
|
112
|
-
redirectPorts: sso.redirectPorts,
|
|
113
|
-
subjectTokenSource: sso.subjectTokenSource,
|
|
114
|
-
userIdClaim: sso.userIdClaim,
|
|
115
|
-
groupsClaim: sso.groupsClaim,
|
|
116
|
-
accessType: sso.accessType || undefined,
|
|
117
|
-
flowType: "public_pkce",
|
|
118
|
-
};
|
|
144
|
+
return this.toSSOAuthMethod(method);
|
|
119
145
|
}
|
|
120
146
|
return undefined;
|
|
121
147
|
}
|
|
122
148
|
|
|
123
|
-
/**
|
|
149
|
+
/** Every login method the backend advertises, of every kind, in advertised order, each
|
|
150
|
+
* keeping its own `id`, `title`, `description` and kind. An entry with no usable method arm, or an
|
|
151
|
+
* SSO entry whose flow no client here can drive, is dropped rather than failing the whole
|
|
152
|
+
* list, which is why this accessor skips where {@link ssoConfig} throws. */
|
|
153
|
+
public loginMethods(): LoginMethod[] {
|
|
154
|
+
const picked: LoginMethod[] = [];
|
|
155
|
+
for (const method of this.ll.authMethodsSync.methods) {
|
|
156
|
+
switch (method.method.oneofKind) {
|
|
157
|
+
case "basic":
|
|
158
|
+
case "token":
|
|
159
|
+
picked.push({
|
|
160
|
+
kind: method.method.oneofKind,
|
|
161
|
+
id: method.id,
|
|
162
|
+
title: method.title || method.description || method.id,
|
|
163
|
+
description: method.description,
|
|
164
|
+
});
|
|
165
|
+
break;
|
|
166
|
+
case "sso": {
|
|
167
|
+
const sso = this.toSSOAuthMethod(method);
|
|
168
|
+
if (sso !== undefined) picked.push({ kind: "sso", ...sso });
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
default:
|
|
172
|
+
// No arm at all — a legacy backend advertising nothing pickable.
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return picked;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/** Login with username and password.
|
|
124
180
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* - if only token auth is offered, treats `password` as an opaque bearer token and
|
|
128
|
-
* sends {@link LLPlClient.loginWithToken} (so deployments configured for static-token
|
|
129
|
-
* auth still log in without the caller switching methods).
|
|
181
|
+
* Routes to {@link LLPlClient.loginBasic} or {@link LLPlClient.loginWithToken} based on the
|
|
182
|
+
* advertised method `idP` names. On legacy backends, uses GetJWTToken with Basic header.
|
|
130
183
|
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
|
|
184
|
+
* `idP` names the advertised method. A named basic-kind method routes to the basic branch;
|
|
185
|
+
* a named token-kind method routes to the token branch even when the backend also advertises
|
|
186
|
+
* a basic method — the token wire carries no selector, so the id itself is dropped there and
|
|
187
|
+
* only the branch choice is kept. Omitted, or naming no advertised method, falls back to
|
|
188
|
+
* today's first-match behavior: basic wins over token when both are advertised. */
|
|
189
|
+
public async login(user: string, password: string, idP?: string): Promise<AuthInformation> {
|
|
134
190
|
try {
|
|
135
191
|
let token: string;
|
|
136
192
|
if (this.ll.hasCapability("auth:v2")) {
|
|
137
193
|
const schemes = this.supportedAuthSchemes;
|
|
138
|
-
|
|
139
|
-
|
|
194
|
+
const namedKind =
|
|
195
|
+
idP === undefined ? undefined : this.loginMethods().find((m) => m.id === idP)?.kind;
|
|
196
|
+
if (namedKind === "token") {
|
|
197
|
+
token = await this.ll.loginWithToken(password);
|
|
198
|
+
} else if (schemes.basic) {
|
|
199
|
+
token =
|
|
200
|
+
idP === undefined
|
|
201
|
+
? await this.ll.loginBasic(user, password)
|
|
202
|
+
: await this.ll.loginBasic(user, password, { idP });
|
|
140
203
|
} else if (schemes.token) {
|
|
141
204
|
token = await this.ll.loginWithToken(password);
|
|
142
205
|
} else {
|
|
@@ -157,9 +220,12 @@ export class UnauthenticatedPlClient {
|
|
|
157
220
|
}
|
|
158
221
|
|
|
159
222
|
/** Request fresh server-issued login material. v1 only emits the public-PKCE flow;
|
|
160
|
-
* desktop MUST place the returned `nonce` verbatim into the OIDC auth-request.
|
|
161
|
-
|
|
162
|
-
|
|
223
|
+
* desktop MUST place the returned `nonce` verbatim into the OIDC auth-request. `idP` names
|
|
224
|
+
* the advertised SSO method to route to; omitted, the backend keeps its current first-match
|
|
225
|
+
* behaviour. */
|
|
226
|
+
public async beginSSOLogin(idP?: string): Promise<SSOLoginAttempt> {
|
|
227
|
+
const attempt =
|
|
228
|
+
idP === undefined ? await this.ll.beginSSOLogin() : await this.ll.beginSSOLogin(idP);
|
|
163
229
|
return {
|
|
164
230
|
flow: "public_pkce",
|
|
165
231
|
nonce: attempt.nonce,
|
|
@@ -168,10 +234,18 @@ export class UnauthenticatedPlClient {
|
|
|
168
234
|
};
|
|
169
235
|
}
|
|
170
236
|
|
|
171
|
-
/** Forward the verbatim IdP `/token` response body and receive a Platforma JWT.
|
|
172
|
-
|
|
237
|
+
/** Forward the verbatim IdP `/token` response body and receive a Platforma JWT. `idP` names
|
|
238
|
+
* the advertised SSO method to route to; omitted, the backend keeps its current first-match
|
|
239
|
+
* behaviour. */
|
|
240
|
+
public async loginSSO(payload: {
|
|
241
|
+
tokenResponse: Uint8Array;
|
|
242
|
+
idP?: string;
|
|
243
|
+
}): Promise<AuthInformation> {
|
|
173
244
|
try {
|
|
174
|
-
const jwtToken =
|
|
245
|
+
const jwtToken =
|
|
246
|
+
payload.idP === undefined
|
|
247
|
+
? await this.ll.loginSSO(payload.tokenResponse)
|
|
248
|
+
: await this.ll.loginSSO(payload.tokenResponse, payload.idP);
|
|
175
249
|
if (jwtToken === "") throw new Error("empty token");
|
|
176
250
|
return { jwtToken };
|
|
177
251
|
} catch (e: any) {
|