@orizm/cli 2.2.7 → 3.0.1
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 +111 -4
- package/dist/array-update-CMFUoQEe.mjs +41 -0
- package/dist/array-update-CMFUoQEe.mjs.map +1 -0
- package/dist/array-update-Dch4e9tI.cjs +58 -0
- package/dist/array-update-Dch4e9tI.cjs.map +1 -0
- package/dist/auth-BGW072BP.mjs +18 -0
- package/dist/auth-BGW072BP.mjs.map +1 -0
- package/dist/auth-CNbONZuf.cjs +18 -0
- package/dist/auth-CNbONZuf.cjs.map +1 -0
- package/dist/bucket-DqW-WEYb.mjs +17 -0
- package/dist/bucket-DqW-WEYb.mjs.map +1 -0
- package/dist/bucket-mg5QQORh.cjs +17 -0
- package/dist/bucket-mg5QQORh.cjs.map +1 -0
- package/dist/cli/main.cjs +231 -0
- package/dist/cli/main.cjs.map +1 -0
- package/dist/cli/main.d.cts +1 -0
- package/dist/cli/main.d.mts +1 -0
- package/dist/cli/main.mjs +196 -0
- package/dist/cli/main.mjs.map +1 -0
- package/dist/cms-BJnovGYT.mjs +172 -0
- package/dist/cms-BJnovGYT.mjs.map +1 -0
- package/dist/cms-Cnx-lDGu.cjs +172 -0
- package/dist/cms-Cnx-lDGu.cjs.map +1 -0
- package/dist/codegen-BF5b-u46.cjs +17 -0
- package/dist/codegen-BF5b-u46.cjs.map +1 -0
- package/dist/codegen-DZOB4ttR.mjs +17 -0
- package/dist/codegen-DZOB4ttR.mjs.map +1 -0
- package/dist/config/index.cjs +49 -96
- package/dist/config/index.cjs.map +1 -1
- package/dist/config/index.d.cts +1 -53
- package/dist/config/{index.d.ts → index.d.mts} +29 -28
- package/dist/config/index.d.mts.map +1 -0
- package/dist/config/index.mjs +59 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/config-loader-BEgS869e.mjs +65 -0
- package/dist/config-loader-BEgS869e.mjs.map +1 -0
- package/dist/config-loader-D8x32gEU.cjs +78 -0
- package/dist/config-loader-D8x32gEU.cjs.map +1 -0
- package/dist/confirm-delete-B9o73U7B.cjs +19 -0
- package/dist/confirm-delete-B9o73U7B.cjs.map +1 -0
- package/dist/confirm-delete-CsWkW69-.mjs +14 -0
- package/dist/confirm-delete-CsWkW69-.mjs.map +1 -0
- package/dist/consumer-C4WiGHWG.mjs +18 -0
- package/dist/consumer-C4WiGHWG.mjs.map +1 -0
- package/dist/consumer-OF6Z_eTP.cjs +95 -0
- package/dist/consumer-OF6Z_eTP.cjs.map +1 -0
- package/dist/consumer-l-8wUK8E.cjs +18 -0
- package/dist/consumer-l-8wUK8E.cjs.map +1 -0
- package/dist/consumer-pU2HyiyA.mjs +95 -0
- package/dist/consumer-pU2HyiyA.mjs.map +1 -0
- package/dist/content-BOb6NC8M.mjs +20 -0
- package/dist/content-BOb6NC8M.mjs.map +1 -0
- package/dist/content-DMjSwor1.cjs +20 -0
- package/dist/content-DMjSwor1.cjs.map +1 -0
- package/dist/create-B-PAOor6.mjs +66 -0
- package/dist/create-B-PAOor6.mjs.map +1 -0
- package/dist/create-B1ZBOqcV.mjs +58 -0
- package/dist/create-B1ZBOqcV.mjs.map +1 -0
- package/dist/create-BNYWcyuQ.cjs +66 -0
- package/dist/create-BNYWcyuQ.cjs.map +1 -0
- package/dist/create-Belwettw.mjs +54 -0
- package/dist/create-Belwettw.mjs.map +1 -0
- package/dist/create-BvERyMKa.cjs +81 -0
- package/dist/create-BvERyMKa.cjs.map +1 -0
- package/dist/create-CC814ixh.mjs +66 -0
- package/dist/create-CC814ixh.mjs.map +1 -0
- package/dist/create-CmOriwGo.cjs +58 -0
- package/dist/create-CmOriwGo.cjs.map +1 -0
- package/dist/create-DJY71sp9.cjs +54 -0
- package/dist/create-DJY71sp9.cjs.map +1 -0
- package/dist/create-Dups0gV2.mjs +81 -0
- package/dist/create-Dups0gV2.mjs.map +1 -0
- package/dist/create-Z-z3LXNW.cjs +66 -0
- package/dist/create-Z-z3LXNW.cjs.map +1 -0
- package/dist/delete-8yZ3j0vX.cjs +59 -0
- package/dist/delete-8yZ3j0vX.cjs.map +1 -0
- package/dist/delete-BOUObrDw.mjs +48 -0
- package/dist/delete-BOUObrDw.mjs.map +1 -0
- package/dist/delete-BSLIXrAh.mjs +59 -0
- package/dist/delete-BSLIXrAh.mjs.map +1 -0
- package/dist/delete-CCTiCYIL.cjs +51 -0
- package/dist/delete-CCTiCYIL.cjs.map +1 -0
- package/dist/delete-CIYY59v_.cjs +48 -0
- package/dist/delete-CIYY59v_.cjs.map +1 -0
- package/dist/delete-CSs5Czlo.mjs +59 -0
- package/dist/delete-CSs5Czlo.mjs.map +1 -0
- package/dist/delete-D4r1ve4v.cjs +56 -0
- package/dist/delete-D4r1ve4v.cjs.map +1 -0
- package/dist/delete-DVrafka1.cjs +56 -0
- package/dist/delete-DVrafka1.cjs.map +1 -0
- package/dist/delete-DhSU-Lx2.mjs +51 -0
- package/dist/delete-DhSU-Lx2.mjs.map +1 -0
- package/dist/delete-DozSxZQ7.cjs +59 -0
- package/dist/delete-DozSxZQ7.cjs.map +1 -0
- package/dist/delete-WpMIIvjj.cjs +56 -0
- package/dist/delete-WpMIIvjj.cjs.map +1 -0
- package/dist/delete-XWJRhBFs.mjs +56 -0
- package/dist/delete-XWJRhBFs.mjs.map +1 -0
- package/dist/delete-YYh_0khQ.mjs +56 -0
- package/dist/delete-YYh_0khQ.mjs.map +1 -0
- package/dist/delete-ZIifaG0i.mjs +56 -0
- package/dist/delete-ZIifaG0i.mjs.map +1 -0
- package/dist/detail-8CXNIhKw.cjs +16 -0
- package/dist/detail-8CXNIhKw.cjs.map +1 -0
- package/dist/detail-DN5jCQ4N.mjs +10 -0
- package/dist/detail-DN5jCQ4N.mjs.map +1 -0
- package/dist/download-oFGzg30E.mjs +68 -0
- package/dist/download-oFGzg30E.mjs.map +1 -0
- package/dist/download-ogGbb3FU.cjs +68 -0
- package/dist/download-ogGbb3FU.cjs.map +1 -0
- package/dist/erd-lKC5NB2l.cjs +124 -0
- package/dist/erd-lKC5NB2l.cjs.map +1 -0
- package/dist/erd-zDoF6I_y.mjs +123 -0
- package/dist/erd-zDoF6I_y.mjs.map +1 -0
- package/dist/get-BBOKSXkh.cjs +48 -0
- package/dist/get-BBOKSXkh.cjs.map +1 -0
- package/dist/get-BiPEF_m-.cjs +57 -0
- package/dist/get-BiPEF_m-.cjs.map +1 -0
- package/dist/get-C7dKoSIc.mjs +47 -0
- package/dist/get-C7dKoSIc.mjs.map +1 -0
- package/dist/get-CgEgETQa.mjs +52 -0
- package/dist/get-CgEgETQa.mjs.map +1 -0
- package/dist/get-DB80UNSR.mjs +47 -0
- package/dist/get-DB80UNSR.mjs.map +1 -0
- package/dist/get-DBxhbN1G.mjs +57 -0
- package/dist/get-DBxhbN1G.mjs.map +1 -0
- package/dist/get-DDB89cOs.mjs +48 -0
- package/dist/get-DDB89cOs.mjs.map +1 -0
- package/dist/get-DjRyK0hJ.cjs +47 -0
- package/dist/get-DjRyK0hJ.cjs.map +1 -0
- package/dist/get-IOU__2RP.cjs +52 -0
- package/dist/get-IOU__2RP.cjs.map +1 -0
- package/dist/get-KdWfYINc.cjs +47 -0
- package/dist/get-KdWfYINc.cjs.map +1 -0
- package/dist/get-RpxdnCKR.mjs +56 -0
- package/dist/get-RpxdnCKR.mjs.map +1 -0
- package/dist/get-jwXRlIBJ.cjs +57 -0
- package/dist/get-jwXRlIBJ.cjs.map +1 -0
- package/dist/group-roles-BIH7q8tf.mjs +36 -0
- package/dist/group-roles-BIH7q8tf.mjs.map +1 -0
- package/dist/group-roles-B_iAZog-.cjs +59 -0
- package/dist/group-roles-B_iAZog-.cjs.map +1 -0
- package/dist/invite-D66DSMvq.mjs +66 -0
- package/dist/invite-D66DSMvq.mjs.map +1 -0
- package/dist/invite-DPygtCoO.cjs +66 -0
- package/dist/invite-DPygtCoO.cjs.map +1 -0
- package/dist/key-C71Ffll9.mjs +17 -0
- package/dist/key-C71Ffll9.mjs.map +1 -0
- package/dist/key-DQr7qRL2.cjs +17 -0
- package/dist/key-DQr7qRL2.cjs.map +1 -0
- package/dist/link-BluFyxEL.mjs +42 -0
- package/dist/link-BluFyxEL.mjs.map +1 -0
- package/dist/link-DYu1Vjlw.cjs +42 -0
- package/dist/link-DYu1Vjlw.cjs.map +1 -0
- package/dist/list-57TUfNFd.mjs +48 -0
- package/dist/list-57TUfNFd.mjs.map +1 -0
- package/dist/list-B0N4-Q-5.mjs +81 -0
- package/dist/list-B0N4-Q-5.mjs.map +1 -0
- package/dist/list-BHvURTWd.cjs +40 -0
- package/dist/list-BHvURTWd.cjs.map +1 -0
- package/dist/list-BRh59EqI.cjs +35 -0
- package/dist/list-BRh59EqI.cjs.map +1 -0
- package/dist/list-Br6Cmi9S.cjs +95 -0
- package/dist/list-Br6Cmi9S.cjs.map +1 -0
- package/dist/list-BsYYq9wT.mjs +40 -0
- package/dist/list-BsYYq9wT.mjs.map +1 -0
- package/dist/list-BwfpuhmJ.cjs +37 -0
- package/dist/list-BwfpuhmJ.cjs.map +1 -0
- package/dist/list-BzLraBnA.cjs +82 -0
- package/dist/list-BzLraBnA.cjs.map +1 -0
- package/dist/list-CFwW0G9f.cjs +49 -0
- package/dist/list-CFwW0G9f.cjs.map +1 -0
- package/dist/list-CU42ERNY.cjs +81 -0
- package/dist/list-CU42ERNY.cjs.map +1 -0
- package/dist/list-CbvEh7eA.mjs +35 -0
- package/dist/list-CbvEh7eA.mjs.map +1 -0
- package/dist/list-D0-QrWmn.cjs +51 -0
- package/dist/list-D0-QrWmn.cjs.map +1 -0
- package/dist/list-D5PSDMWw.mjs +51 -0
- package/dist/list-D5PSDMWw.mjs.map +1 -0
- package/dist/list-DexBclfb.cjs +72 -0
- package/dist/list-DexBclfb.cjs.map +1 -0
- package/dist/list-DlJssPwy.cjs +48 -0
- package/dist/list-DlJssPwy.cjs.map +1 -0
- package/dist/list-DrZYlidZ.mjs +72 -0
- package/dist/list-DrZYlidZ.mjs.map +1 -0
- package/dist/list-ocfd7631.mjs +49 -0
- package/dist/list-ocfd7631.mjs.map +1 -0
- package/dist/list-rAn3uOA7.mjs +37 -0
- package/dist/list-rAn3uOA7.mjs.map +1 -0
- package/dist/list-sQk00GV5.mjs +95 -0
- package/dist/list-sQk00GV5.mjs.map +1 -0
- package/dist/list-vbMaOiza.mjs +82 -0
- package/dist/list-vbMaOiza.mjs.map +1 -0
- package/dist/login-2XcHd4wn.cjs +212 -0
- package/dist/login-2XcHd4wn.cjs.map +1 -0
- package/dist/login-FE_dbWMo.mjs +211 -0
- package/dist/login-FE_dbWMo.mjs.map +1 -0
- package/dist/logout-BDbWrGBm.mjs +35 -0
- package/dist/logout-BDbWrGBm.mjs.map +1 -0
- package/dist/logout-DC5TMJ5_.cjs +35 -0
- package/dist/logout-DC5TMJ5_.cjs.map +1 -0
- package/dist/management-BGYcZB4c.cjs +19 -0
- package/dist/management-BGYcZB4c.cjs.map +1 -0
- package/dist/management-DDACMgbU.mjs +19 -0
- package/dist/management-DDACMgbU.mjs.map +1 -0
- package/dist/mask-B1qD73jb.mjs +22 -0
- package/dist/mask-B1qD73jb.mjs.map +1 -0
- package/dist/mask-CqYLib9p.cjs +40 -0
- package/dist/mask-CqYLib9p.cjs.map +1 -0
- package/dist/oauth-client-CdD0evAV.cjs +170 -0
- package/dist/oauth-client-CdD0evAV.cjs.map +1 -0
- package/dist/oauth-client-QHuDa4fW.mjs +139 -0
- package/dist/oauth-client-QHuDa4fW.mjs.map +1 -0
- package/dist/object-DVqidsEc.cjs +20 -0
- package/dist/object-DVqidsEc.cjs.map +1 -0
- package/dist/object-qdBdEghr.mjs +20 -0
- package/dist/object-qdBdEghr.mjs.map +1 -0
- package/dist/org-C4cVovOM.cjs +14 -0
- package/dist/org-C4cVovOM.cjs.map +1 -0
- package/dist/org-CPhTRTks.mjs +14 -0
- package/dist/org-CPhTRTks.mjs.map +1 -0
- package/dist/org-context-Bewx2NEW.cjs +30 -0
- package/dist/org-context-Bewx2NEW.cjs.map +1 -0
- package/dist/org-context-D0dwWC2M.mjs +25 -0
- package/dist/org-context-D0dwWC2M.mjs.map +1 -0
- package/dist/parse-C8oHgQXx.cjs +229 -0
- package/dist/parse-C8oHgQXx.cjs.map +1 -0
- package/dist/parse-DA0k5AHa.mjs +150 -0
- package/dist/parse-DA0k5AHa.mjs.map +1 -0
- package/dist/project-BX7zvWB1.cjs +20 -0
- package/dist/project-BX7zvWB1.cjs.map +1 -0
- package/dist/project-CaXD3QBs.mjs +20 -0
- package/dist/project-CaXD3QBs.mjs.map +1 -0
- package/dist/project-name-CEoM-OL4.cjs +18 -0
- package/dist/project-name-CEoM-OL4.cjs.map +1 -0
- package/dist/project-name-DNMejnzZ.mjs +12 -0
- package/dist/project-name-DNMejnzZ.mjs.map +1 -0
- package/dist/project-user-Cp7i6orv.mjs +20 -0
- package/dist/project-user-Cp7i6orv.mjs.map +1 -0
- package/dist/project-user-Dm0qR-sh.cjs +20 -0
- package/dist/project-user-Dm0qR-sh.cjs.map +1 -0
- package/dist/push-0u6PDz4E.cjs +166 -0
- package/dist/push-0u6PDz4E.cjs.map +1 -0
- package/dist/push-D7co0keA.mjs +166 -0
- package/dist/push-D7co0keA.mjs.map +1 -0
- package/dist/run-codegen-Ceeosw5x.cjs +272 -0
- package/dist/run-codegen-Ceeosw5x.cjs.map +1 -0
- package/dist/run-codegen-DgaFaIQ1.mjs +190 -0
- package/dist/run-codegen-DgaFaIQ1.mjs.map +1 -0
- package/dist/run-with-context-CVhmzAFZ.mjs +876 -0
- package/dist/run-with-context-CVhmzAFZ.mjs.map +1 -0
- package/dist/run-with-context-DJNnEigg.cjs +943 -0
- package/dist/run-with-context-DJNnEigg.cjs.map +1 -0
- package/dist/schema-B3iRqvYK.cjs +20 -0
- package/dist/schema-B3iRqvYK.cjs.map +1 -0
- package/dist/schema-exG250MU.mjs +20 -0
- package/dist/schema-exG250MU.mjs.map +1 -0
- package/dist/shared-CZZimGxc.mjs +35 -0
- package/dist/shared-CZZimGxc.mjs.map +1 -0
- package/dist/shared-DHRPzzKl.cjs +59 -0
- package/dist/shared-DHRPzzKl.cjs.map +1 -0
- package/dist/status-Dq_NJE71.cjs +49 -0
- package/dist/status-Dq_NJE71.cjs.map +1 -0
- package/dist/status-fWqXzV0P.mjs +49 -0
- package/dist/status-fWqXzV0P.mjs.map +1 -0
- package/dist/table-C74eOSh8.cjs +27 -0
- package/dist/table-C74eOSh8.cjs.map +1 -0
- package/dist/table-MHEfbnWO.mjs +20 -0
- package/dist/table-MHEfbnWO.mjs.map +1 -0
- package/dist/table-event-C7gORNlb.mjs +72 -0
- package/dist/table-event-C7gORNlb.mjs.map +1 -0
- package/dist/table-event-DXkCK29f.cjs +101 -0
- package/dist/table-event-DXkCK29f.cjs.map +1 -0
- package/dist/token-store--9GYVL7N.cjs +139 -0
- package/dist/token-store--9GYVL7N.cjs.map +1 -0
- package/dist/token-store-reCGF86F.mjs +124 -0
- package/dist/token-store-reCGF86F.mjs.map +1 -0
- package/dist/update-B4lv4dAz.mjs +109 -0
- package/dist/update-B4lv4dAz.mjs.map +1 -0
- package/dist/update-BXhSosHG.cjs +171 -0
- package/dist/update-BXhSosHG.cjs.map +1 -0
- package/dist/update-CIH6sSVk.cjs +109 -0
- package/dist/update-CIH6sSVk.cjs.map +1 -0
- package/dist/update-CQ4n4Xuf.mjs +117 -0
- package/dist/update-CQ4n4Xuf.mjs.map +1 -0
- package/dist/update-CuPRoVw3.mjs +171 -0
- package/dist/update-CuPRoVw3.mjs.map +1 -0
- package/dist/update-Cx_2GkQj.cjs +61 -0
- package/dist/update-Cx_2GkQj.cjs.map +1 -0
- package/dist/update-DRnN1kiu.cjs +117 -0
- package/dist/update-DRnN1kiu.cjs.map +1 -0
- package/dist/update-Do9HHWzs.cjs +73 -0
- package/dist/update-Do9HHWzs.cjs.map +1 -0
- package/dist/update-mEmULIau.mjs +73 -0
- package/dist/update-mEmULIau.mjs.map +1 -0
- package/dist/update-rzij1b_o.mjs +61 -0
- package/dist/update-rzij1b_o.mjs.map +1 -0
- package/dist/upload-C43ZXxyb.cjs +95 -0
- package/dist/upload-C43ZXxyb.cjs.map +1 -0
- package/dist/upload-DGgJ1TQk.mjs +94 -0
- package/dist/upload-DGgJ1TQk.mjs.map +1 -0
- package/dist/validate-BpxZ8LTl.cjs +31 -0
- package/dist/validate-BpxZ8LTl.cjs.map +1 -0
- package/dist/validate-Ca0CRo16.mjs +31 -0
- package/dist/validate-Ca0CRo16.mjs.map +1 -0
- package/dist/webhook-CVFmch5W.cjs +20 -0
- package/dist/webhook-CVFmch5W.cjs.map +1 -0
- package/dist/webhook-Cy850dNs.mjs +20 -0
- package/dist/webhook-Cy850dNs.mjs.map +1 -0
- package/package.json +28 -17
- package/bin/index.js +0 -3
- package/dist/cli.cjs +0 -1978
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.d.cts +0 -2
- package/dist/cli.d.ts +0 -2
- package/dist/cli.js +0 -1954
- package/dist/cli.js.map +0 -1
- package/dist/config/index.js +0 -81
- package/dist/config/index.js.map +0 -1
|
@@ -0,0 +1,943 @@
|
|
|
1
|
+
const require_cli_main = require('./cli/main.cjs');
|
|
2
|
+
const require_token_store = require('./token-store--9GYVL7N.cjs');
|
|
3
|
+
const require_oauth_client = require('./oauth-client-CdD0evAV.cjs');
|
|
4
|
+
let _praha_byethrow = require("@praha/byethrow");
|
|
5
|
+
let valibot = require("valibot");
|
|
6
|
+
valibot = require_cli_main.__toESM(valibot, 1);
|
|
7
|
+
let node_fs_promises = require("node:fs/promises");
|
|
8
|
+
let node_path = require("node:path");
|
|
9
|
+
node_path = require_cli_main.__toESM(node_path, 1);
|
|
10
|
+
|
|
11
|
+
//#region src/cli/auth/refresh.ts
|
|
12
|
+
const REFRESH_THRESHOLD_MS = 60 * 1e3;
|
|
13
|
+
var TokenRefresher = class {
|
|
14
|
+
#store;
|
|
15
|
+
#inflight = /* @__PURE__ */ new Map();
|
|
16
|
+
constructor(store) {
|
|
17
|
+
this.#store = store;
|
|
18
|
+
}
|
|
19
|
+
async getValidAccessToken(issuerUrl) {
|
|
20
|
+
const entry = await this.#store.get(issuerUrl);
|
|
21
|
+
if (entry === void 0) return _praha_byethrow.Result.fail({ type: "no_token" });
|
|
22
|
+
if (!isExpiringSoon(entry.expiresAt)) return _praha_byethrow.Result.succeed(entry.accessToken);
|
|
23
|
+
return this.#toAccessToken(this.#refreshOnce(issuerUrl));
|
|
24
|
+
}
|
|
25
|
+
async forceRefresh(issuerUrl) {
|
|
26
|
+
return this.#toAccessToken(this.#refreshOnce(issuerUrl));
|
|
27
|
+
}
|
|
28
|
+
async #toAccessToken(pending) {
|
|
29
|
+
const result = await pending;
|
|
30
|
+
if (_praha_byethrow.Result.isFailure(result)) return result;
|
|
31
|
+
return _praha_byethrow.Result.succeed(result.value.accessToken);
|
|
32
|
+
}
|
|
33
|
+
#refreshOnce(issuerUrl) {
|
|
34
|
+
const existing = this.#inflight.get(issuerUrl);
|
|
35
|
+
if (existing !== void 0) return existing;
|
|
36
|
+
const pending = this.#doRefresh(issuerUrl).finally(() => this.#inflight.delete(issuerUrl));
|
|
37
|
+
this.#inflight.set(issuerUrl, pending);
|
|
38
|
+
return pending;
|
|
39
|
+
}
|
|
40
|
+
async #doRefresh(issuerUrl) {
|
|
41
|
+
const entry = await this.#store.get(issuerUrl);
|
|
42
|
+
if (entry === void 0) return _praha_byethrow.Result.fail({ type: "no_token" });
|
|
43
|
+
const refreshed = await require_oauth_client.refreshTokens({
|
|
44
|
+
issuerUrl,
|
|
45
|
+
refreshToken: entry.refreshToken
|
|
46
|
+
});
|
|
47
|
+
if (_praha_byethrow.Result.isFailure(refreshed)) {
|
|
48
|
+
await this.#store.remove(issuerUrl);
|
|
49
|
+
return _praha_byethrow.Result.fail({
|
|
50
|
+
type: "refresh_failed",
|
|
51
|
+
reason: refreshed.error.reason
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const updated = {
|
|
55
|
+
...entry,
|
|
56
|
+
accessToken: refreshed.value.accessToken,
|
|
57
|
+
refreshToken: refreshed.value.refreshToken,
|
|
58
|
+
idToken: refreshed.value.idToken,
|
|
59
|
+
scope: refreshed.value.scope,
|
|
60
|
+
expiresAt: refreshed.value.expiresAt
|
|
61
|
+
};
|
|
62
|
+
await this.#store.set(issuerUrl, updated);
|
|
63
|
+
return _praha_byethrow.Result.succeed(updated);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
function isExpiringSoon(expiresAt) {
|
|
67
|
+
return Date.parse(expiresAt) - Date.now() <= REFRESH_THRESHOLD_MS;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/cli/context/project.ts
|
|
72
|
+
const ProjectFileSchema = valibot.object({
|
|
73
|
+
projectName: valibot.pipe(valibot.string(), valibot.nonEmpty()),
|
|
74
|
+
organizationName: valibot.optional(valibot.pipe(valibot.string(), valibot.nonEmpty()))
|
|
75
|
+
});
|
|
76
|
+
async function readNearestProjectFile(cwd = process.cwd()) {
|
|
77
|
+
let dir = node_path.default.resolve(cwd);
|
|
78
|
+
for (;;) {
|
|
79
|
+
const file = node_path.default.join(dir, ".orizm", "project.json");
|
|
80
|
+
const raw = await (0, node_fs_promises.readFile)(file, "utf-8").catch((error) => {
|
|
81
|
+
if (error.code === "ENOENT") return void 0;
|
|
82
|
+
throw error;
|
|
83
|
+
});
|
|
84
|
+
if (raw !== void 0) {
|
|
85
|
+
const parsed = valibot.safeParse(ProjectFileSchema, safeJsonParse(raw));
|
|
86
|
+
if (!parsed.success) return _praha_byethrow.Result.fail({
|
|
87
|
+
type: "project_json_invalid",
|
|
88
|
+
path: file
|
|
89
|
+
});
|
|
90
|
+
return _praha_byethrow.Result.succeed({
|
|
91
|
+
path: file,
|
|
92
|
+
context: parsed.output
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
const parent = node_path.default.dirname(dir);
|
|
96
|
+
if (parent === dir) return _praha_byethrow.Result.succeed(void 0);
|
|
97
|
+
dir = parent;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
async function resolveProjectName(params) {
|
|
101
|
+
if (params.flag != null && params.flag !== "") return _praha_byethrow.Result.succeed(params.flag);
|
|
102
|
+
if (params.env != null && params.env !== "") return _praha_byethrow.Result.succeed(params.env);
|
|
103
|
+
const found = await readNearestProjectFile(params.cwd);
|
|
104
|
+
if (_praha_byethrow.Result.isFailure(found)) return found;
|
|
105
|
+
if (found.value === void 0) return _praha_byethrow.Result.fail({ type: "no_project_context" });
|
|
106
|
+
return _praha_byethrow.Result.succeed(found.value.context.projectName);
|
|
107
|
+
}
|
|
108
|
+
async function resolveOrganizationName(params) {
|
|
109
|
+
if (params.flag != null && params.flag !== "") return _praha_byethrow.Result.succeed(params.flag);
|
|
110
|
+
const found = await readNearestProjectFile(params.cwd);
|
|
111
|
+
if (_praha_byethrow.Result.isFailure(found)) return found;
|
|
112
|
+
const organizationName = found.value?.context.organizationName;
|
|
113
|
+
if (organizationName == null || organizationName === "") return _praha_byethrow.Result.fail({ type: "no_organization_context" });
|
|
114
|
+
return _praha_byethrow.Result.succeed(organizationName);
|
|
115
|
+
}
|
|
116
|
+
async function resolveLinkDirectory(cwd = process.cwd()) {
|
|
117
|
+
let dir = node_path.default.resolve(cwd);
|
|
118
|
+
for (;;) {
|
|
119
|
+
if (await (0, node_fs_promises.access)(node_path.default.join(dir, ".orizm", "project.json")).then(() => true, () => false)) return dir;
|
|
120
|
+
const parent = node_path.default.dirname(dir);
|
|
121
|
+
if (parent === dir) return node_path.default.resolve(cwd);
|
|
122
|
+
dir = parent;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function readProjectFileAt(dir) {
|
|
126
|
+
const raw = await (0, node_fs_promises.readFile)(node_path.default.join(node_path.default.resolve(dir), ".orizm", "project.json"), "utf-8").catch((error) => {
|
|
127
|
+
if (error.code === "ENOENT") return void 0;
|
|
128
|
+
throw error;
|
|
129
|
+
});
|
|
130
|
+
if (raw === void 0) return void 0;
|
|
131
|
+
const parsed = valibot.safeParse(ProjectFileSchema, safeJsonParse(raw));
|
|
132
|
+
return parsed.success ? parsed.output : void 0;
|
|
133
|
+
}
|
|
134
|
+
async function writeProjectFile(dir, context) {
|
|
135
|
+
const orizmDir = node_path.default.join(node_path.default.resolve(dir), ".orizm");
|
|
136
|
+
await (0, node_fs_promises.mkdir)(orizmDir, { recursive: true });
|
|
137
|
+
const file = node_path.default.join(orizmDir, "project.json");
|
|
138
|
+
await (0, node_fs_promises.writeFile)(file, JSON.stringify(context, null, 2) + "\n", "utf-8");
|
|
139
|
+
return file;
|
|
140
|
+
}
|
|
141
|
+
function safeJsonParse(raw) {
|
|
142
|
+
try {
|
|
143
|
+
return JSON.parse(raw);
|
|
144
|
+
} catch {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/cli/credentials/resolve.ts
|
|
151
|
+
async function resolveCredentials(params) {
|
|
152
|
+
if (await params.store.get(params.issuerUrl) !== void 0) return _praha_byethrow.Result.succeed({
|
|
153
|
+
type: "bearer",
|
|
154
|
+
issuerUrl: params.issuerUrl
|
|
155
|
+
});
|
|
156
|
+
if (params.apiKey !== void 0) return _praha_byethrow.Result.succeed({
|
|
157
|
+
type: "api-key",
|
|
158
|
+
apiKey: params.apiKey
|
|
159
|
+
});
|
|
160
|
+
return _praha_byethrow.Result.fail({ type: "no_credentials" });
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region ../internal-shared/dist/assert-valid-url-origin-XeiLzH_m.mjs
|
|
165
|
+
const PATH_PARAM_RE = /\{[^{}]+\}/g;
|
|
166
|
+
const supportsRequestInitExt = () => {
|
|
167
|
+
return typeof process === "object" && Number.parseInt(process?.versions?.node?.substring(0, 2)) >= 18 && process.versions.undici;
|
|
168
|
+
};
|
|
169
|
+
function randomID() {
|
|
170
|
+
return Math.random().toString(36).slice(2, 11);
|
|
171
|
+
}
|
|
172
|
+
function createClient(clientOptions) {
|
|
173
|
+
let { baseUrl = "", Request: CustomRequest = globalThis.Request, fetch: baseFetch = globalThis.fetch, querySerializer: globalQuerySerializer, bodySerializer: globalBodySerializer, pathSerializer: globalPathSerializer, headers: baseHeaders, requestInitExt = void 0, ...baseOptions } = { ...clientOptions };
|
|
174
|
+
requestInitExt = supportsRequestInitExt() ? requestInitExt : void 0;
|
|
175
|
+
baseUrl = removeTrailingSlash(baseUrl);
|
|
176
|
+
const globalMiddlewares = [];
|
|
177
|
+
async function coreFetch(schemaPath, fetchOptions) {
|
|
178
|
+
const { baseUrl: localBaseUrl, fetch = baseFetch, Request = CustomRequest, headers, params = {}, parseAs = "json", querySerializer: requestQuerySerializer, bodySerializer = globalBodySerializer ?? defaultBodySerializer, pathSerializer: requestPathSerializer, body, middleware: requestMiddlewares = [], ...init } = fetchOptions || {};
|
|
179
|
+
let finalBaseUrl = baseUrl;
|
|
180
|
+
if (localBaseUrl) finalBaseUrl = removeTrailingSlash(localBaseUrl) ?? baseUrl;
|
|
181
|
+
let querySerializer = typeof globalQuerySerializer === "function" ? globalQuerySerializer : createQuerySerializer(globalQuerySerializer);
|
|
182
|
+
if (requestQuerySerializer) querySerializer = typeof requestQuerySerializer === "function" ? requestQuerySerializer : createQuerySerializer({
|
|
183
|
+
...typeof globalQuerySerializer === "object" ? globalQuerySerializer : {},
|
|
184
|
+
...requestQuerySerializer
|
|
185
|
+
});
|
|
186
|
+
const pathSerializer = requestPathSerializer || globalPathSerializer || defaultPathSerializer;
|
|
187
|
+
const serializedBody = body === void 0 ? void 0 : bodySerializer(body, mergeHeaders(baseHeaders, headers, params.header));
|
|
188
|
+
const finalHeaders = mergeHeaders(serializedBody === void 0 || serializedBody instanceof FormData ? {} : { "Content-Type": "application/json" }, baseHeaders, headers, params.header);
|
|
189
|
+
const finalMiddlewares = [...globalMiddlewares, ...requestMiddlewares];
|
|
190
|
+
const requestInit = {
|
|
191
|
+
redirect: "follow",
|
|
192
|
+
...baseOptions,
|
|
193
|
+
...init,
|
|
194
|
+
body: serializedBody,
|
|
195
|
+
headers: finalHeaders
|
|
196
|
+
};
|
|
197
|
+
let id;
|
|
198
|
+
let options;
|
|
199
|
+
let request = new Request(createFinalURL(schemaPath, {
|
|
200
|
+
baseUrl: finalBaseUrl,
|
|
201
|
+
params,
|
|
202
|
+
querySerializer,
|
|
203
|
+
pathSerializer
|
|
204
|
+
}), requestInit);
|
|
205
|
+
let response;
|
|
206
|
+
for (const key in init) if (!(key in request)) request[key] = init[key];
|
|
207
|
+
if (finalMiddlewares.length) {
|
|
208
|
+
id = randomID();
|
|
209
|
+
options = Object.freeze({
|
|
210
|
+
baseUrl: finalBaseUrl,
|
|
211
|
+
fetch,
|
|
212
|
+
parseAs,
|
|
213
|
+
querySerializer,
|
|
214
|
+
bodySerializer,
|
|
215
|
+
pathSerializer
|
|
216
|
+
});
|
|
217
|
+
for (const m of finalMiddlewares) if (m && typeof m === "object" && typeof m.onRequest === "function") {
|
|
218
|
+
const result = await m.onRequest({
|
|
219
|
+
request,
|
|
220
|
+
schemaPath,
|
|
221
|
+
params,
|
|
222
|
+
options,
|
|
223
|
+
id
|
|
224
|
+
});
|
|
225
|
+
if (result) if (result instanceof Request) request = result;
|
|
226
|
+
else if (result instanceof Response) {
|
|
227
|
+
response = result;
|
|
228
|
+
break;
|
|
229
|
+
} else throw new Error("onRequest: must return new Request() or Response() when modifying the request");
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
if (!response) {
|
|
233
|
+
try {
|
|
234
|
+
response = await fetch(request, requestInitExt);
|
|
235
|
+
} catch (error2) {
|
|
236
|
+
let errorAfterMiddleware = error2;
|
|
237
|
+
if (finalMiddlewares.length) for (let i = finalMiddlewares.length - 1; i >= 0; i--) {
|
|
238
|
+
const m = finalMiddlewares[i];
|
|
239
|
+
if (m && typeof m === "object" && typeof m.onError === "function") {
|
|
240
|
+
const result = await m.onError({
|
|
241
|
+
request,
|
|
242
|
+
error: errorAfterMiddleware,
|
|
243
|
+
schemaPath,
|
|
244
|
+
params,
|
|
245
|
+
options,
|
|
246
|
+
id
|
|
247
|
+
});
|
|
248
|
+
if (result) {
|
|
249
|
+
if (result instanceof Response) {
|
|
250
|
+
errorAfterMiddleware = void 0;
|
|
251
|
+
response = result;
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
if (result instanceof Error) {
|
|
255
|
+
errorAfterMiddleware = result;
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
throw new Error("onError: must return new Response() or instance of Error");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (errorAfterMiddleware) throw errorAfterMiddleware;
|
|
263
|
+
}
|
|
264
|
+
if (finalMiddlewares.length) for (let i = finalMiddlewares.length - 1; i >= 0; i--) {
|
|
265
|
+
const m = finalMiddlewares[i];
|
|
266
|
+
if (m && typeof m === "object" && typeof m.onResponse === "function") {
|
|
267
|
+
const result = await m.onResponse({
|
|
268
|
+
request,
|
|
269
|
+
response,
|
|
270
|
+
schemaPath,
|
|
271
|
+
params,
|
|
272
|
+
options,
|
|
273
|
+
id
|
|
274
|
+
});
|
|
275
|
+
if (result) {
|
|
276
|
+
if (!(result instanceof Response)) throw new Error("onResponse: must return new Response() when modifying the response");
|
|
277
|
+
response = result;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const contentLength = response.headers.get("Content-Length");
|
|
283
|
+
if (response.status === 204 || request.method === "HEAD" || contentLength === "0" && !response.headers.get("Transfer-Encoding")?.includes("chunked")) return response.ok ? {
|
|
284
|
+
data: void 0,
|
|
285
|
+
response
|
|
286
|
+
} : {
|
|
287
|
+
error: void 0,
|
|
288
|
+
response
|
|
289
|
+
};
|
|
290
|
+
if (response.ok) {
|
|
291
|
+
const getResponseData = async () => {
|
|
292
|
+
if (parseAs === "stream") return response.body;
|
|
293
|
+
if (parseAs === "json" && !contentLength) {
|
|
294
|
+
const raw = await response.text();
|
|
295
|
+
return raw ? JSON.parse(raw) : void 0;
|
|
296
|
+
}
|
|
297
|
+
return await response[parseAs]();
|
|
298
|
+
};
|
|
299
|
+
return {
|
|
300
|
+
data: await getResponseData(),
|
|
301
|
+
response
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
let error = await response.text();
|
|
305
|
+
try {
|
|
306
|
+
error = JSON.parse(error);
|
|
307
|
+
} catch {}
|
|
308
|
+
return {
|
|
309
|
+
error,
|
|
310
|
+
response
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
request(method, url, init) {
|
|
315
|
+
return coreFetch(url, {
|
|
316
|
+
...init,
|
|
317
|
+
method: method.toUpperCase()
|
|
318
|
+
});
|
|
319
|
+
},
|
|
320
|
+
/** Call a GET endpoint */
|
|
321
|
+
GET(url, init) {
|
|
322
|
+
return coreFetch(url, {
|
|
323
|
+
...init,
|
|
324
|
+
method: "GET"
|
|
325
|
+
});
|
|
326
|
+
},
|
|
327
|
+
/** Call a PUT endpoint */
|
|
328
|
+
PUT(url, init) {
|
|
329
|
+
return coreFetch(url, {
|
|
330
|
+
...init,
|
|
331
|
+
method: "PUT"
|
|
332
|
+
});
|
|
333
|
+
},
|
|
334
|
+
/** Call a POST endpoint */
|
|
335
|
+
POST(url, init) {
|
|
336
|
+
return coreFetch(url, {
|
|
337
|
+
...init,
|
|
338
|
+
method: "POST"
|
|
339
|
+
});
|
|
340
|
+
},
|
|
341
|
+
/** Call a DELETE endpoint */
|
|
342
|
+
DELETE(url, init) {
|
|
343
|
+
return coreFetch(url, {
|
|
344
|
+
...init,
|
|
345
|
+
method: "DELETE"
|
|
346
|
+
});
|
|
347
|
+
},
|
|
348
|
+
/** Call a OPTIONS endpoint */
|
|
349
|
+
OPTIONS(url, init) {
|
|
350
|
+
return coreFetch(url, {
|
|
351
|
+
...init,
|
|
352
|
+
method: "OPTIONS"
|
|
353
|
+
});
|
|
354
|
+
},
|
|
355
|
+
/** Call a HEAD endpoint */
|
|
356
|
+
HEAD(url, init) {
|
|
357
|
+
return coreFetch(url, {
|
|
358
|
+
...init,
|
|
359
|
+
method: "HEAD"
|
|
360
|
+
});
|
|
361
|
+
},
|
|
362
|
+
/** Call a PATCH endpoint */
|
|
363
|
+
PATCH(url, init) {
|
|
364
|
+
return coreFetch(url, {
|
|
365
|
+
...init,
|
|
366
|
+
method: "PATCH"
|
|
367
|
+
});
|
|
368
|
+
},
|
|
369
|
+
/** Call a TRACE endpoint */
|
|
370
|
+
TRACE(url, init) {
|
|
371
|
+
return coreFetch(url, {
|
|
372
|
+
...init,
|
|
373
|
+
method: "TRACE"
|
|
374
|
+
});
|
|
375
|
+
},
|
|
376
|
+
/** Register middleware */
|
|
377
|
+
use(...middleware) {
|
|
378
|
+
for (const m of middleware) {
|
|
379
|
+
if (!m) continue;
|
|
380
|
+
if (typeof m !== "object" || !("onRequest" in m || "onResponse" in m || "onError" in m)) throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");
|
|
381
|
+
globalMiddlewares.push(m);
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
/** Unregister middleware */
|
|
385
|
+
eject(...middleware) {
|
|
386
|
+
for (const m of middleware) {
|
|
387
|
+
const i = globalMiddlewares.indexOf(m);
|
|
388
|
+
if (i !== -1) globalMiddlewares.splice(i, 1);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
function serializePrimitiveParam(name, value, options) {
|
|
394
|
+
if (value === void 0 || value === null) return "";
|
|
395
|
+
if (typeof value === "object") throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");
|
|
396
|
+
return `${name}=${options?.allowReserved === true ? value : encodeURIComponent(value)}`;
|
|
397
|
+
}
|
|
398
|
+
function serializeObjectParam(name, value, options) {
|
|
399
|
+
if (!value || typeof value !== "object") return "";
|
|
400
|
+
const values = [];
|
|
401
|
+
const joiner = {
|
|
402
|
+
simple: ",",
|
|
403
|
+
label: ".",
|
|
404
|
+
matrix: ";"
|
|
405
|
+
}[options.style] || "&";
|
|
406
|
+
if (options.style !== "deepObject" && options.explode === false) {
|
|
407
|
+
for (const k in value) values.push(k, options.allowReserved === true ? value[k] : encodeURIComponent(value[k]));
|
|
408
|
+
const final2 = values.join(",");
|
|
409
|
+
switch (options.style) {
|
|
410
|
+
case "form": return `${name}=${final2}`;
|
|
411
|
+
case "label": return `.${final2}`;
|
|
412
|
+
case "matrix": return `;${name}=${final2}`;
|
|
413
|
+
default: return final2;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
for (const k in value) {
|
|
417
|
+
const finalName = options.style === "deepObject" ? `${name}[${k}]` : k;
|
|
418
|
+
values.push(serializePrimitiveParam(finalName, value[k], options));
|
|
419
|
+
}
|
|
420
|
+
const final = values.join(joiner);
|
|
421
|
+
return options.style === "label" || options.style === "matrix" ? `${joiner}${final}` : final;
|
|
422
|
+
}
|
|
423
|
+
function serializeArrayParam(name, value, options) {
|
|
424
|
+
if (!Array.isArray(value)) return "";
|
|
425
|
+
if (options.explode === false) {
|
|
426
|
+
const joiner2 = {
|
|
427
|
+
form: ",",
|
|
428
|
+
spaceDelimited: "%20",
|
|
429
|
+
pipeDelimited: "|"
|
|
430
|
+
}[options.style] || ",";
|
|
431
|
+
const final = (options.allowReserved === true ? value : value.map((v) => encodeURIComponent(v))).join(joiner2);
|
|
432
|
+
switch (options.style) {
|
|
433
|
+
case "simple": return final;
|
|
434
|
+
case "label": return `.${final}`;
|
|
435
|
+
case "matrix": return `;${name}=${final}`;
|
|
436
|
+
default: return `${name}=${final}`;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
const joiner = {
|
|
440
|
+
simple: ",",
|
|
441
|
+
label: ".",
|
|
442
|
+
matrix: ";"
|
|
443
|
+
}[options.style] || "&";
|
|
444
|
+
const values = [];
|
|
445
|
+
for (const v of value) if (options.style === "simple" || options.style === "label") values.push(options.allowReserved === true ? v : encodeURIComponent(v));
|
|
446
|
+
else values.push(serializePrimitiveParam(name, v, options));
|
|
447
|
+
return options.style === "label" || options.style === "matrix" ? `${joiner}${values.join(joiner)}` : values.join(joiner);
|
|
448
|
+
}
|
|
449
|
+
function createQuerySerializer(options) {
|
|
450
|
+
return function querySerializer(queryParams) {
|
|
451
|
+
const search = [];
|
|
452
|
+
if (queryParams && typeof queryParams === "object") for (const name in queryParams) {
|
|
453
|
+
const value = queryParams[name];
|
|
454
|
+
if (value === void 0 || value === null) continue;
|
|
455
|
+
if (Array.isArray(value)) {
|
|
456
|
+
if (value.length === 0) continue;
|
|
457
|
+
search.push(serializeArrayParam(name, value, {
|
|
458
|
+
style: "form",
|
|
459
|
+
explode: true,
|
|
460
|
+
...options?.array,
|
|
461
|
+
allowReserved: options?.allowReserved || false
|
|
462
|
+
}));
|
|
463
|
+
continue;
|
|
464
|
+
}
|
|
465
|
+
if (typeof value === "object") {
|
|
466
|
+
search.push(serializeObjectParam(name, value, {
|
|
467
|
+
style: "deepObject",
|
|
468
|
+
explode: true,
|
|
469
|
+
...options?.object,
|
|
470
|
+
allowReserved: options?.allowReserved || false
|
|
471
|
+
}));
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
search.push(serializePrimitiveParam(name, value, options));
|
|
475
|
+
}
|
|
476
|
+
return search.join("&");
|
|
477
|
+
};
|
|
478
|
+
}
|
|
479
|
+
function defaultPathSerializer(pathname, pathParams) {
|
|
480
|
+
let nextURL = pathname;
|
|
481
|
+
for (const match of pathname.match(PATH_PARAM_RE) ?? []) {
|
|
482
|
+
let name = match.substring(1, match.length - 1);
|
|
483
|
+
let explode = false;
|
|
484
|
+
let style = "simple";
|
|
485
|
+
if (name.endsWith("*")) {
|
|
486
|
+
explode = true;
|
|
487
|
+
name = name.substring(0, name.length - 1);
|
|
488
|
+
}
|
|
489
|
+
if (name.startsWith(".")) {
|
|
490
|
+
style = "label";
|
|
491
|
+
name = name.substring(1);
|
|
492
|
+
} else if (name.startsWith(";")) {
|
|
493
|
+
style = "matrix";
|
|
494
|
+
name = name.substring(1);
|
|
495
|
+
}
|
|
496
|
+
if (!pathParams || pathParams[name] === void 0 || pathParams[name] === null) continue;
|
|
497
|
+
const value = pathParams[name];
|
|
498
|
+
if (Array.isArray(value)) {
|
|
499
|
+
nextURL = nextURL.replace(match, serializeArrayParam(name, value, {
|
|
500
|
+
style,
|
|
501
|
+
explode
|
|
502
|
+
}));
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (typeof value === "object") {
|
|
506
|
+
nextURL = nextURL.replace(match, serializeObjectParam(name, value, {
|
|
507
|
+
style,
|
|
508
|
+
explode
|
|
509
|
+
}));
|
|
510
|
+
continue;
|
|
511
|
+
}
|
|
512
|
+
if (style === "matrix") {
|
|
513
|
+
nextURL = nextURL.replace(match, `;${serializePrimitiveParam(name, value)}`);
|
|
514
|
+
continue;
|
|
515
|
+
}
|
|
516
|
+
nextURL = nextURL.replace(match, style === "label" ? `.${encodeURIComponent(value)}` : encodeURIComponent(value));
|
|
517
|
+
}
|
|
518
|
+
return nextURL;
|
|
519
|
+
}
|
|
520
|
+
function defaultBodySerializer(body, headers) {
|
|
521
|
+
if (body instanceof FormData) return body;
|
|
522
|
+
if (headers) {
|
|
523
|
+
if ((headers.get instanceof Function ? headers.get("Content-Type") ?? headers.get("content-type") : headers["Content-Type"] ?? headers["content-type"]) === "application/x-www-form-urlencoded") return new URLSearchParams(body).toString();
|
|
524
|
+
}
|
|
525
|
+
return JSON.stringify(body);
|
|
526
|
+
}
|
|
527
|
+
function createFinalURL(pathname, options) {
|
|
528
|
+
let finalURL = `${options.baseUrl}${pathname}`;
|
|
529
|
+
if (options.params?.path) finalURL = options.pathSerializer(finalURL, options.params.path);
|
|
530
|
+
let search = options.querySerializer(options.params.query ?? {});
|
|
531
|
+
if (search.startsWith("?")) search = search.substring(1);
|
|
532
|
+
if (search) finalURL += `?${search}`;
|
|
533
|
+
return finalURL;
|
|
534
|
+
}
|
|
535
|
+
function mergeHeaders(...allHeaders) {
|
|
536
|
+
const finalHeaders = new Headers();
|
|
537
|
+
for (const h of allHeaders) {
|
|
538
|
+
if (!h || typeof h !== "object") continue;
|
|
539
|
+
const iterator = h instanceof Headers ? h.entries() : Object.entries(h);
|
|
540
|
+
for (const [k, v] of iterator) if (v === null) finalHeaders.delete(k);
|
|
541
|
+
else if (Array.isArray(v)) for (const v2 of v) finalHeaders.append(k, v2);
|
|
542
|
+
else if (v !== void 0) finalHeaders.set(k, v);
|
|
543
|
+
}
|
|
544
|
+
return finalHeaders;
|
|
545
|
+
}
|
|
546
|
+
function removeTrailingSlash(url) {
|
|
547
|
+
if (url.endsWith("/")) return url.substring(0, url.length - 1);
|
|
548
|
+
return url;
|
|
549
|
+
}
|
|
550
|
+
function assertValidUrlOrigin(origin) {
|
|
551
|
+
if (new URL(origin).origin !== origin) throw new Error(`${origin} is not a valid URL origin`);
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
//#endregion
|
|
555
|
+
//#region ../internal-shared/dist/api-clients/dev-v2-api-client.mjs
|
|
556
|
+
function createDeveloperAPIv2Client({ serverOrigin = "", fetch, headers }) {
|
|
557
|
+
if (serverOrigin) assertValidUrlOrigin(serverOrigin);
|
|
558
|
+
return createClient({
|
|
559
|
+
baseUrl: `${serverOrigin}/api/dev/v2`,
|
|
560
|
+
fetch,
|
|
561
|
+
headers
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
//#endregion
|
|
566
|
+
//#region src/cli/api/client.ts
|
|
567
|
+
function createAuthenticatedClient(params) {
|
|
568
|
+
const authFetch = buildAuthFetch(params.credentials, params.refresher);
|
|
569
|
+
return createDeveloperAPIv2Client({
|
|
570
|
+
serverOrigin: params.baseUrl,
|
|
571
|
+
fetch: authFetch
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
function buildAuthFetch(credentials, refresher) {
|
|
575
|
+
if (credentials.type === "api-key") {
|
|
576
|
+
const { apiKey } = credentials;
|
|
577
|
+
return async (input, init) => {
|
|
578
|
+
const request = new Request(input, init);
|
|
579
|
+
request.headers.set("x-api-key", apiKey);
|
|
580
|
+
return globalThis.fetch(request);
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
const { issuerUrl } = credentials;
|
|
584
|
+
return async (input, init) => {
|
|
585
|
+
const token = await refresher.getValidAccessToken(issuerUrl);
|
|
586
|
+
if (_praha_byethrow.Result.isFailure(token)) return unauthorizedResponse();
|
|
587
|
+
const request = new Request(input, init);
|
|
588
|
+
const retryRequest = request.clone();
|
|
589
|
+
request.headers.set("Authorization", `Bearer ${token.value}`);
|
|
590
|
+
const first = await globalThis.fetch(request);
|
|
591
|
+
if (first.status !== 401) return first;
|
|
592
|
+
const refreshed = await refresher.forceRefresh(issuerUrl);
|
|
593
|
+
if (_praha_byethrow.Result.isFailure(refreshed)) return first;
|
|
594
|
+
retryRequest.headers.set("Authorization", `Bearer ${refreshed.value}`);
|
|
595
|
+
return globalThis.fetch(retryRequest);
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
function unauthorizedResponse() {
|
|
599
|
+
return new Response(JSON.stringify({
|
|
600
|
+
type: "unauthorized",
|
|
601
|
+
title: "Unauthorized",
|
|
602
|
+
detail: "Authentication is required. Run `orizm auth login`."
|
|
603
|
+
}), {
|
|
604
|
+
status: 401,
|
|
605
|
+
headers: { "content-type": "application/json" }
|
|
606
|
+
});
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
//#endregion
|
|
610
|
+
//#region src/cli/api/errors.ts
|
|
611
|
+
const ProblemSchema = valibot.object({
|
|
612
|
+
type: valibot.string(),
|
|
613
|
+
title: valibot.string(),
|
|
614
|
+
detail: valibot.string(),
|
|
615
|
+
fields: valibot.optional(valibot.array(valibot.union([valibot.string(), valibot.object({
|
|
616
|
+
field: valibot.string(),
|
|
617
|
+
message: valibot.string()
|
|
618
|
+
})])))
|
|
619
|
+
});
|
|
620
|
+
function isSuccess(result) {
|
|
621
|
+
return result.response.ok && result.error === void 0;
|
|
622
|
+
}
|
|
623
|
+
function toResult(result) {
|
|
624
|
+
if (result.response.status >= 500) throw new Error(`Server responded with ${result.response.status}`);
|
|
625
|
+
if (!isSuccess(result)) return failFromProblem(result.error, result.response);
|
|
626
|
+
return {
|
|
627
|
+
type: "Success",
|
|
628
|
+
value: result.data
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
function failFromProblem(error, response) {
|
|
632
|
+
const problem = valibot.safeParse(ProblemSchema, error);
|
|
633
|
+
if (!problem.success) throw new Error(`Unexpected API response (status ${response.status})`);
|
|
634
|
+
const apiError = toApiError(problem.output);
|
|
635
|
+
if (apiError === void 0) throw new Error(`Unhandled API error type: ${problem.output.type}`);
|
|
636
|
+
return _praha_byethrow.Result.fail(apiError);
|
|
637
|
+
}
|
|
638
|
+
function toApiError(problem) {
|
|
639
|
+
switch (problem.type) {
|
|
640
|
+
case "bad-request": return {
|
|
641
|
+
type: "bad_request",
|
|
642
|
+
detail: problem.detail,
|
|
643
|
+
fields: objectFields(problem.fields)
|
|
644
|
+
};
|
|
645
|
+
case "unauthorized": return {
|
|
646
|
+
type: "unauthorized",
|
|
647
|
+
detail: problem.detail
|
|
648
|
+
};
|
|
649
|
+
case "forbidden": return {
|
|
650
|
+
type: "forbidden",
|
|
651
|
+
detail: problem.detail
|
|
652
|
+
};
|
|
653
|
+
case "not-found": return {
|
|
654
|
+
type: "not_found",
|
|
655
|
+
detail: problem.detail
|
|
656
|
+
};
|
|
657
|
+
case "conflict": return {
|
|
658
|
+
type: "conflict",
|
|
659
|
+
detail: problem.detail
|
|
660
|
+
};
|
|
661
|
+
default: return;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
function objectFields(fields) {
|
|
665
|
+
if (fields === void 0) return [];
|
|
666
|
+
return fields.filter((field) => typeof field !== "string");
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
//#endregion
|
|
670
|
+
//#region src/cli/api/organizations.ts
|
|
671
|
+
async function fetchOrganizations(client) {
|
|
672
|
+
return toResult(await client.GET("/organizations"));
|
|
673
|
+
}
|
|
674
|
+
async function resolveOrganizationId(client, name) {
|
|
675
|
+
const organizations = await fetchOrganizations(client);
|
|
676
|
+
if (_praha_byethrow.Result.isFailure(organizations)) return organizations;
|
|
677
|
+
const matched = organizations.value.find((org) => org.name === name);
|
|
678
|
+
if (matched === void 0) return _praha_byethrow.Result.fail({
|
|
679
|
+
type: "organization_not_found",
|
|
680
|
+
name
|
|
681
|
+
});
|
|
682
|
+
return _praha_byethrow.Result.succeed(matched.id);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
//#endregion
|
|
686
|
+
//#region src/cli/context/gitignore.ts
|
|
687
|
+
const ENTRY = ".orizm/";
|
|
688
|
+
function gitignoreHasEntry(content) {
|
|
689
|
+
return content.split(/\r?\n/).map((line) => line.trim()).some((line) => line === ".orizm" || line === ".orizm/");
|
|
690
|
+
}
|
|
691
|
+
function enoentToUndefined(error) {
|
|
692
|
+
if (error.code === "ENOENT") return void 0;
|
|
693
|
+
throw error;
|
|
694
|
+
}
|
|
695
|
+
async function gitignoreContainsEntry(dir) {
|
|
696
|
+
const existing = await (0, node_fs_promises.readFile)(node_path.default.join(dir, ".gitignore"), "utf-8").catch(enoentToUndefined);
|
|
697
|
+
return existing !== void 0 && gitignoreHasEntry(existing);
|
|
698
|
+
}
|
|
699
|
+
async function appendGitignoreEntry(dir) {
|
|
700
|
+
const file = node_path.default.join(dir, ".gitignore");
|
|
701
|
+
const existing = await (0, node_fs_promises.readFile)(file, "utf-8").catch(enoentToUndefined);
|
|
702
|
+
await (0, node_fs_promises.writeFile)(file, `${existing == null || existing === "" || existing.endsWith("\n") ? existing ?? "" : existing + "\n"}${ENTRY}\n`, "utf-8");
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
//#endregion
|
|
706
|
+
//#region src/cli/ui/prompt.ts
|
|
707
|
+
async function confirm(message, initial = false) {
|
|
708
|
+
return await require_cli_main.logger.prompt(message, {
|
|
709
|
+
type: "confirm",
|
|
710
|
+
initial
|
|
711
|
+
}) === true;
|
|
712
|
+
}
|
|
713
|
+
async function promptText(message) {
|
|
714
|
+
const answer = await require_cli_main.logger.prompt(message, { type: "text" });
|
|
715
|
+
return typeof answer === "string" ? answer : void 0;
|
|
716
|
+
}
|
|
717
|
+
async function select(message, options) {
|
|
718
|
+
const answer = await require_cli_main.logger.prompt(message, {
|
|
719
|
+
type: "select",
|
|
720
|
+
options,
|
|
721
|
+
cancel: "null"
|
|
722
|
+
});
|
|
723
|
+
return typeof answer === "string" ? answer : void 0;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
//#endregion
|
|
727
|
+
//#region src/cli/commands/api-errors.ts
|
|
728
|
+
function apiErrorFailure(error) {
|
|
729
|
+
switch (error.type) {
|
|
730
|
+
case "bad_request": {
|
|
731
|
+
const fieldLines = error.fields.map((field) => `\n - ${field.field}: ${field.message}`);
|
|
732
|
+
return _praha_byethrow.Result.fail({ message: `${error.detail}${fieldLines.join("")}` });
|
|
733
|
+
}
|
|
734
|
+
case "unauthorized": return _praha_byethrow.Result.fail({ message: `Not authorized: ${error.detail}. Run \`orizm auth login\` or check ORIZM_API_KEY.` });
|
|
735
|
+
case "forbidden": return _praha_byethrow.Result.fail({ message: `Forbidden: ${error.detail}` });
|
|
736
|
+
case "not_found": return _praha_byethrow.Result.fail({ message: `Not found: ${error.detail}` });
|
|
737
|
+
case "conflict": return _praha_byethrow.Result.fail({ message: `Conflict: ${error.detail}` });
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
//#endregion
|
|
742
|
+
//#region src/cli/commands/link-flow.ts
|
|
743
|
+
async function runLinkFlow(ctx, options) {
|
|
744
|
+
const linkDir = await resolveLinkDirectory(options.cwd);
|
|
745
|
+
const existing = await readProjectFileAt(linkDir);
|
|
746
|
+
if (existing !== void 0) {
|
|
747
|
+
if (!await options.prompts.confirmOverwrite(existing)) return _praha_byethrow.Result.succeed({ linked: false });
|
|
748
|
+
}
|
|
749
|
+
const organizations = await fetchOrganizations(ctx.client);
|
|
750
|
+
if (_praha_byethrow.Result.isFailure(organizations)) return apiErrorFailure(organizations.error);
|
|
751
|
+
if (organizations.value.length === 0) return _praha_byethrow.Result.fail({ message: "You do not belong to any organization." });
|
|
752
|
+
const organization = await options.prompts.selectOrganization(organizations.value);
|
|
753
|
+
if (organization === void 0) return _praha_byethrow.Result.succeed({ linked: false });
|
|
754
|
+
const projects = toResult(await ctx.client.GET("/projects", { params: { query: { organizationId: organization.id } } }));
|
|
755
|
+
if (_praha_byethrow.Result.isFailure(projects)) return apiErrorFailure(projects.error);
|
|
756
|
+
if (projects.value.length === 0) return _praha_byethrow.Result.fail({ message: `Organization "${organization.name}" has no projects.` });
|
|
757
|
+
const project = await options.prompts.selectProject(projects.value);
|
|
758
|
+
if (project === void 0) return _praha_byethrow.Result.succeed({ linked: false });
|
|
759
|
+
const file = await writeProjectFile(linkDir, {
|
|
760
|
+
projectName: project.name,
|
|
761
|
+
organizationName: organization.name
|
|
762
|
+
});
|
|
763
|
+
const gitignoreNote = await ensureGitignore(linkDir, options.prompts.confirmGitignore);
|
|
764
|
+
return _praha_byethrow.Result.succeed({
|
|
765
|
+
linked: true,
|
|
766
|
+
projectName: project.name,
|
|
767
|
+
organizationName: organization.name,
|
|
768
|
+
file,
|
|
769
|
+
gitignoreNote
|
|
770
|
+
});
|
|
771
|
+
}
|
|
772
|
+
async function ensureGitignore(linkDir, confirmGitignore) {
|
|
773
|
+
if (await gitignoreContainsEntry(linkDir)) return "";
|
|
774
|
+
if (!await confirmGitignore()) return "Skipped updating .gitignore. Consider ignoring .orizm/ yourself.";
|
|
775
|
+
await appendGitignoreEntry(linkDir);
|
|
776
|
+
return "Added .orizm/ to .gitignore.";
|
|
777
|
+
}
|
|
778
|
+
async function promptSelectFromList(items, message, label, value) {
|
|
779
|
+
const selected = await select(message, items.map((item) => ({
|
|
780
|
+
label: label(item),
|
|
781
|
+
value: value(item)
|
|
782
|
+
})));
|
|
783
|
+
if (selected === void 0) return void 0;
|
|
784
|
+
return items.find((item) => value(item) === selected);
|
|
785
|
+
}
|
|
786
|
+
function defaultLinkPrompts() {
|
|
787
|
+
return {
|
|
788
|
+
confirmOverwrite: (existing) => confirm(`This directory is already linked to "${existing.projectName}". Overwrite?`, false),
|
|
789
|
+
selectOrganization: (organizations) => promptSelectFromList(organizations, "Select an organization:", (organization) => `${organization.displayName} (${organization.name})`, (organization) => organization.name),
|
|
790
|
+
selectProject: (projects) => promptSelectFromList(projects, "Select a project:", (project) => `${project.displayName} (${project.name})`, (project) => project.name),
|
|
791
|
+
confirmGitignore: () => confirm("Add .orizm/ to .gitignore?", true)
|
|
792
|
+
};
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
//#endregion
|
|
796
|
+
//#region src/cli/commands/run-with-context.ts
|
|
797
|
+
async function resolveAuth(options) {
|
|
798
|
+
const env = require_token_store.resolveEnv(options.envSource);
|
|
799
|
+
if (_praha_byethrow.Result.isFailure(env)) return _praha_byethrow.Result.fail({ message: "Invalid environment variable configuration for Orizm." });
|
|
800
|
+
const store = options.store ?? new require_token_store.FileTokenStore();
|
|
801
|
+
const refresher = new TokenRefresher(store);
|
|
802
|
+
const credentials = await resolveCredentials({
|
|
803
|
+
store,
|
|
804
|
+
issuerUrl: env.value.issuerUrl,
|
|
805
|
+
apiKey: env.value.apiKey
|
|
806
|
+
});
|
|
807
|
+
if (_praha_byethrow.Result.isFailure(credentials)) return _praha_byethrow.Result.fail({ message: "Not authenticated. Run `orizm auth login`, or set ORIZM_API_KEY." });
|
|
808
|
+
if (credentials.value.type === "bearer") {
|
|
809
|
+
const token = await refresher.getValidAccessToken(env.value.issuerUrl);
|
|
810
|
+
if (_praha_byethrow.Result.isFailure(token)) return _praha_byethrow.Result.fail({ message: "Your session has expired or was revoked. Run `orizm auth login` to sign in again." });
|
|
811
|
+
}
|
|
812
|
+
const client = createAuthenticatedClient({
|
|
813
|
+
baseUrl: env.value.baseUrl,
|
|
814
|
+
credentials: credentials.value,
|
|
815
|
+
refresher
|
|
816
|
+
});
|
|
817
|
+
return _praha_byethrow.Result.succeed({
|
|
818
|
+
context: {
|
|
819
|
+
baseUrl: env.value.baseUrl,
|
|
820
|
+
client
|
|
821
|
+
},
|
|
822
|
+
env: env.value
|
|
823
|
+
});
|
|
824
|
+
}
|
|
825
|
+
async function runWithAuth(handler, options = {}) {
|
|
826
|
+
const auth = await resolveAuth(options);
|
|
827
|
+
if (_praha_byethrow.Result.isFailure(auth)) return auth;
|
|
828
|
+
return handler(auth.value.context);
|
|
829
|
+
}
|
|
830
|
+
async function runWithContext(args, handler, options = {}) {
|
|
831
|
+
const auth = await resolveAuth(options);
|
|
832
|
+
if (_praha_byethrow.Result.isFailure(auth)) return auth;
|
|
833
|
+
const project = await resolveProjectName({
|
|
834
|
+
flag: typeof args.project === "string" ? args.project : void 0,
|
|
835
|
+
env: auth.value.env.project,
|
|
836
|
+
cwd: options.cwd
|
|
837
|
+
});
|
|
838
|
+
if (_praha_byethrow.Result.isFailure(project)) {
|
|
839
|
+
if (project.error.type === "no_project_context") {
|
|
840
|
+
const linked = await tryInteractiveLink(auth.value.context, options);
|
|
841
|
+
if (linked !== void 0) {
|
|
842
|
+
if (_praha_byethrow.Result.isFailure(linked)) return linked;
|
|
843
|
+
return handler({
|
|
844
|
+
...auth.value.context,
|
|
845
|
+
projectName: linked.value
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
return _praha_byethrow.Result.fail(projectContextFailure(project.error));
|
|
850
|
+
}
|
|
851
|
+
return handler({
|
|
852
|
+
...auth.value.context,
|
|
853
|
+
projectName: project.value
|
|
854
|
+
});
|
|
855
|
+
}
|
|
856
|
+
async function tryInteractiveLink(ctx, options) {
|
|
857
|
+
if (!(options.isTTY ?? process.stdin.isTTY === true)) return void 0;
|
|
858
|
+
require_cli_main.notice("No project is linked to this directory yet. Select one to continue.");
|
|
859
|
+
const flow = await runLinkFlow(ctx, {
|
|
860
|
+
cwd: options.cwd ?? process.cwd(),
|
|
861
|
+
prompts: options.linkPrompts ?? defaultLinkPrompts()
|
|
862
|
+
});
|
|
863
|
+
if (_praha_byethrow.Result.isFailure(flow)) return flow;
|
|
864
|
+
if (!flow.value.linked) return _praha_byethrow.Result.fail(projectContextFailure({ type: "no_project_context" }));
|
|
865
|
+
require_cli_main.notice(`Linked to project ${flow.value.projectName} (organization ${flow.value.organizationName}).`);
|
|
866
|
+
if (flow.value.gitignoreNote !== "") require_cli_main.notice(flow.value.gitignoreNote);
|
|
867
|
+
return _praha_byethrow.Result.succeed(flow.value.projectName);
|
|
868
|
+
}
|
|
869
|
+
function projectContextFailure(error) {
|
|
870
|
+
switch (error.type) {
|
|
871
|
+
case "project_json_invalid": return { message: `Invalid project file: ${error.path}` };
|
|
872
|
+
case "no_project_context": return { message: "No project selected. Run `orizm link`, pass --project <name>, or set ORIZM_PROJECT." };
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
//#endregion
|
|
877
|
+
Object.defineProperty(exports, 'apiErrorFailure', {
|
|
878
|
+
enumerable: true,
|
|
879
|
+
get: function () {
|
|
880
|
+
return apiErrorFailure;
|
|
881
|
+
}
|
|
882
|
+
});
|
|
883
|
+
Object.defineProperty(exports, 'confirm', {
|
|
884
|
+
enumerable: true,
|
|
885
|
+
get: function () {
|
|
886
|
+
return confirm;
|
|
887
|
+
}
|
|
888
|
+
});
|
|
889
|
+
Object.defineProperty(exports, 'defaultLinkPrompts', {
|
|
890
|
+
enumerable: true,
|
|
891
|
+
get: function () {
|
|
892
|
+
return defaultLinkPrompts;
|
|
893
|
+
}
|
|
894
|
+
});
|
|
895
|
+
Object.defineProperty(exports, 'fetchOrganizations', {
|
|
896
|
+
enumerable: true,
|
|
897
|
+
get: function () {
|
|
898
|
+
return fetchOrganizations;
|
|
899
|
+
}
|
|
900
|
+
});
|
|
901
|
+
Object.defineProperty(exports, 'promptText', {
|
|
902
|
+
enumerable: true,
|
|
903
|
+
get: function () {
|
|
904
|
+
return promptText;
|
|
905
|
+
}
|
|
906
|
+
});
|
|
907
|
+
Object.defineProperty(exports, 'resolveOrganizationId', {
|
|
908
|
+
enumerable: true,
|
|
909
|
+
get: function () {
|
|
910
|
+
return resolveOrganizationId;
|
|
911
|
+
}
|
|
912
|
+
});
|
|
913
|
+
Object.defineProperty(exports, 'resolveOrganizationName', {
|
|
914
|
+
enumerable: true,
|
|
915
|
+
get: function () {
|
|
916
|
+
return resolveOrganizationName;
|
|
917
|
+
}
|
|
918
|
+
});
|
|
919
|
+
Object.defineProperty(exports, 'runLinkFlow', {
|
|
920
|
+
enumerable: true,
|
|
921
|
+
get: function () {
|
|
922
|
+
return runLinkFlow;
|
|
923
|
+
}
|
|
924
|
+
});
|
|
925
|
+
Object.defineProperty(exports, 'runWithAuth', {
|
|
926
|
+
enumerable: true,
|
|
927
|
+
get: function () {
|
|
928
|
+
return runWithAuth;
|
|
929
|
+
}
|
|
930
|
+
});
|
|
931
|
+
Object.defineProperty(exports, 'runWithContext', {
|
|
932
|
+
enumerable: true,
|
|
933
|
+
get: function () {
|
|
934
|
+
return runWithContext;
|
|
935
|
+
}
|
|
936
|
+
});
|
|
937
|
+
Object.defineProperty(exports, 'toResult', {
|
|
938
|
+
enumerable: true,
|
|
939
|
+
get: function () {
|
|
940
|
+
return toResult;
|
|
941
|
+
}
|
|
942
|
+
});
|
|
943
|
+
//# sourceMappingURL=run-with-context-DJNnEigg.cjs.map
|