@arbium/enterprise-agent-connect 0.0.0-stage → 0.1.2-dev.d2aa5ca
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/LICENSE +202 -0
- package/README.md +264 -2
- package/dist/connectors/dell-techdirect/connector.json +39 -0
- package/dist/connectors/dell-techdirect/index.d.ts +8 -0
- package/dist/connectors/dell-techdirect/index.js +7 -0
- package/dist/connectors/dell-techdirect/index.js.map +1 -0
- package/dist/connectors/dell-techdirect/tools.d.ts +2 -0
- package/dist/connectors/dell-techdirect/tools.js +49 -0
- package/dist/connectors/dell-techdirect/tools.js.map +1 -0
- package/dist/connectors/dell-techdirect/vendor.d.ts +6 -0
- package/dist/connectors/dell-techdirect/vendor.js +57 -0
- package/dist/connectors/dell-techdirect/vendor.js.map +1 -0
- package/dist/connectors/dynamics-365/connector.json +213 -0
- package/dist/connectors/dynamics-365/index.d.ts +11 -0
- package/dist/connectors/dynamics-365/index.js +10 -0
- package/dist/connectors/dynamics-365/index.js.map +1 -0
- package/dist/connectors/dynamics-365/tools.d.ts +35 -0
- package/dist/connectors/dynamics-365/tools.js +806 -0
- package/dist/connectors/dynamics-365/tools.js.map +1 -0
- package/dist/connectors/dynamics-365/vendor.d.ts +9 -0
- package/dist/connectors/dynamics-365/vendor.js +110 -0
- package/dist/connectors/dynamics-365/vendor.js.map +1 -0
- package/dist/connectors/entra/connector.json +85 -0
- package/dist/connectors/entra/index.d.ts +2 -0
- package/dist/connectors/entra/index.js +4 -0
- package/dist/connectors/entra/index.js.map +1 -0
- package/dist/connectors/entra/tools.d.ts +14 -0
- package/dist/connectors/entra/tools.js +262 -0
- package/dist/connectors/entra/tools.js.map +1 -0
- package/dist/connectors/fedex/connector.json +118 -0
- package/dist/connectors/fedex/index.d.ts +8 -0
- package/dist/connectors/fedex/index.js +7 -0
- package/dist/connectors/fedex/index.js.map +1 -0
- package/dist/connectors/fedex/tools.d.ts +3 -0
- package/dist/connectors/fedex/tools.js +152 -0
- package/dist/connectors/fedex/tools.js.map +1 -0
- package/dist/connectors/fedex/vendor.d.ts +7 -0
- package/dist/connectors/fedex/vendor.js +98 -0
- package/dist/connectors/fedex/vendor.js.map +1 -0
- package/dist/connectors/gong/connector.json +127 -0
- package/dist/connectors/gong/index.d.ts +8 -0
- package/dist/connectors/gong/index.js +7 -0
- package/dist/connectors/gong/index.js.map +1 -0
- package/dist/connectors/gong/tools.d.ts +8 -0
- package/dist/connectors/gong/tools.js +424 -0
- package/dist/connectors/gong/tools.js.map +1 -0
- package/dist/connectors/gong/vendor.d.ts +4 -0
- package/dist/connectors/gong/vendor.js +97 -0
- package/dist/connectors/gong/vendor.js.map +1 -0
- package/dist/connectors/http/index.d.ts +38 -0
- package/dist/connectors/http/index.js +322 -0
- package/dist/connectors/http/index.js.map +1 -0
- package/dist/connectors/intune/connector.json +106 -0
- package/dist/connectors/intune/index.d.ts +2 -0
- package/dist/connectors/intune/index.js +4 -0
- package/dist/connectors/intune/index.js.map +1 -0
- package/dist/connectors/intune/tools.d.ts +12 -0
- package/dist/connectors/intune/tools.js +416 -0
- package/dist/connectors/intune/tools.js.map +1 -0
- package/dist/connectors/jamf/connector.json +182 -0
- package/dist/connectors/jamf/index.d.ts +8 -0
- package/dist/connectors/jamf/index.js +7 -0
- package/dist/connectors/jamf/index.js.map +1 -0
- package/dist/connectors/jamf/tools.d.ts +7 -0
- package/dist/connectors/jamf/tools.js +659 -0
- package/dist/connectors/jamf/tools.js.map +1 -0
- package/dist/connectors/jamf/vendor.d.ts +5 -0
- package/dist/connectors/jamf/vendor.js +66 -0
- package/dist/connectors/jamf/vendor.js.map +1 -0
- package/dist/connectors/jira/connector.json +272 -0
- package/dist/connectors/jira/index.d.ts +8 -0
- package/dist/connectors/jira/index.js +7 -0
- package/dist/connectors/jira/index.js.map +1 -0
- package/dist/connectors/jira/jql.d.ts +4 -0
- package/dist/connectors/jira/jql.js +67 -0
- package/dist/connectors/jira/jql.js.map +1 -0
- package/dist/connectors/jira/tools.d.ts +3 -0
- package/dist/connectors/jira/tools.js +464 -0
- package/dist/connectors/jira/tools.js.map +1 -0
- package/dist/connectors/jira/vendor.d.ts +3 -0
- package/dist/connectors/jira/vendor.js +94 -0
- package/dist/connectors/jira/vendor.js.map +1 -0
- package/dist/connectors/microsoft/client.d.ts +58 -0
- package/dist/connectors/microsoft/client.js +434 -0
- package/dist/connectors/microsoft/client.js.map +1 -0
- package/dist/connectors/microsoft/provider.json +118 -0
- package/dist/connectors/netsuite/connector.json +315 -0
- package/dist/connectors/netsuite/index.d.ts +8 -0
- package/dist/connectors/netsuite/index.js +7 -0
- package/dist/connectors/netsuite/index.js.map +1 -0
- package/dist/connectors/netsuite/tools.d.ts +24 -0
- package/dist/connectors/netsuite/tools.js +447 -0
- package/dist/connectors/netsuite/tools.js.map +1 -0
- package/dist/connectors/netsuite/vendor.d.ts +26 -0
- package/dist/connectors/netsuite/vendor.js +248 -0
- package/dist/connectors/netsuite/vendor.js.map +1 -0
- package/dist/connectors/odata/index.d.ts +36 -0
- package/dist/connectors/odata/index.js +460 -0
- package/dist/connectors/odata/index.js.map +1 -0
- package/dist/connectors/okta/connector.json +193 -0
- package/dist/connectors/okta/index.d.ts +8 -0
- package/dist/connectors/okta/index.js +7 -0
- package/dist/connectors/okta/index.js.map +1 -0
- package/dist/connectors/okta/tools.d.ts +6 -0
- package/dist/connectors/okta/tools.js +429 -0
- package/dist/connectors/okta/tools.js.map +1 -0
- package/dist/connectors/okta/vendor.d.ts +14 -0
- package/dist/connectors/okta/vendor.js +203 -0
- package/dist/connectors/okta/vendor.js.map +1 -0
- package/dist/connectors/outlook-calendar/connector.json +136 -0
- package/dist/connectors/outlook-calendar/index.d.ts +2 -0
- package/dist/connectors/outlook-calendar/index.js +4 -0
- package/dist/connectors/outlook-calendar/index.js.map +1 -0
- package/dist/connectors/outlook-calendar/tools.d.ts +65 -0
- package/dist/connectors/outlook-calendar/tools.js +398 -0
- package/dist/connectors/outlook-calendar/tools.js.map +1 -0
- package/dist/connectors/outlook-mail/connector.json +154 -0
- package/dist/connectors/outlook-mail/index.d.ts +2 -0
- package/dist/connectors/outlook-mail/index.js +4 -0
- package/dist/connectors/outlook-mail/index.js.map +1 -0
- package/dist/connectors/outlook-mail/tools.d.ts +8 -0
- package/dist/connectors/outlook-mail/tools.js +236 -0
- package/dist/connectors/outlook-mail/tools.js.map +1 -0
- package/dist/connectors/salesforce/connector.json +122 -0
- package/dist/connectors/salesforce/index.d.ts +8 -0
- package/dist/connectors/salesforce/index.js +7 -0
- package/dist/connectors/salesforce/index.js.map +1 -0
- package/dist/connectors/salesforce/soql.d.ts +3 -0
- package/dist/connectors/salesforce/soql.js +60 -0
- package/dist/connectors/salesforce/soql.js.map +1 -0
- package/dist/connectors/salesforce/tools.d.ts +9 -0
- package/dist/connectors/salesforce/tools.js +234 -0
- package/dist/connectors/salesforce/tools.js.map +1 -0
- package/dist/connectors/salesforce/vendor.d.ts +3 -0
- package/dist/connectors/salesforce/vendor.js +107 -0
- package/dist/connectors/salesforce/vendor.js.map +1 -0
- package/dist/connectors/sap-s4hana/connector.json +263 -0
- package/dist/connectors/sap-s4hana/index.d.ts +8 -0
- package/dist/connectors/sap-s4hana/index.js +7 -0
- package/dist/connectors/sap-s4hana/index.js.map +1 -0
- package/dist/connectors/sap-s4hana/tools.d.ts +4 -0
- package/dist/connectors/sap-s4hana/tools.js +761 -0
- package/dist/connectors/sap-s4hana/tools.js.map +1 -0
- package/dist/connectors/sap-s4hana/vendor.d.ts +5 -0
- package/dist/connectors/sap-s4hana/vendor.js +176 -0
- package/dist/connectors/sap-s4hana/vendor.js.map +1 -0
- package/dist/connectors/servicenow/connector.json +228 -0
- package/dist/connectors/servicenow/index.d.ts +8 -0
- package/dist/connectors/servicenow/index.js +7 -0
- package/dist/connectors/servicenow/index.js.map +1 -0
- package/dist/connectors/servicenow/tools.d.ts +4 -0
- package/dist/connectors/servicenow/tools.js +884 -0
- package/dist/connectors/servicenow/tools.js.map +1 -0
- package/dist/connectors/servicenow/vendor.d.ts +4 -0
- package/dist/connectors/servicenow/vendor.js +109 -0
- package/dist/connectors/servicenow/vendor.js.map +1 -0
- package/dist/connectors/sharepoint-files/connector.json +194 -0
- package/dist/connectors/sharepoint-files/excel.d.ts +16 -0
- package/dist/connectors/sharepoint-files/excel.js +300 -0
- package/dist/connectors/sharepoint-files/excel.js.map +1 -0
- package/dist/connectors/sharepoint-files/index.d.ts +11 -0
- package/dist/connectors/sharepoint-files/index.js +12 -0
- package/dist/connectors/sharepoint-files/index.js.map +1 -0
- package/dist/connectors/sharepoint-files/tools.d.ts +52 -0
- package/dist/connectors/sharepoint-files/tools.js +365 -0
- package/dist/connectors/sharepoint-files/tools.js.map +1 -0
- package/dist/connectors/sharepoint-files/vendor.d.ts +11 -0
- package/dist/connectors/sharepoint-files/vendor.js +167 -0
- package/dist/connectors/sharepoint-files/vendor.js.map +1 -0
- package/dist/connectors/slack/connector.json +148 -0
- package/dist/connectors/slack/index.d.ts +8 -0
- package/dist/connectors/slack/index.js +7 -0
- package/dist/connectors/slack/index.js.map +1 -0
- package/dist/connectors/slack/tools.d.ts +3 -0
- package/dist/connectors/slack/tools.js +355 -0
- package/dist/connectors/slack/tools.js.map +1 -0
- package/dist/connectors/slack/vendor.d.ts +17 -0
- package/dist/connectors/slack/vendor.js +195 -0
- package/dist/connectors/slack/vendor.js.map +1 -0
- package/dist/connectors/soap/index.d.ts +19 -0
- package/dist/connectors/soap/index.js +248 -0
- package/dist/connectors/soap/index.js.map +1 -0
- package/dist/connectors/soap/xml.d.ts +12 -0
- package/dist/connectors/soap/xml.js +126 -0
- package/dist/connectors/soap/xml.js.map +1 -0
- package/dist/connectors/sql/engines.d.ts +58 -0
- package/dist/connectors/sql/engines.js +292 -0
- package/dist/connectors/sql/engines.js.map +1 -0
- package/dist/connectors/sql/index.d.ts +19 -0
- package/dist/connectors/sql/index.js +212 -0
- package/dist/connectors/sql/index.js.map +1 -0
- package/dist/connectors/teams/connector.json +298 -0
- package/dist/connectors/teams/index.d.ts +2 -0
- package/dist/connectors/teams/index.js +5 -0
- package/dist/connectors/teams/index.js.map +1 -0
- package/dist/connectors/teams/tools.d.ts +2 -0
- package/dist/connectors/teams/tools.js +391 -0
- package/dist/connectors/teams/tools.js.map +1 -0
- package/dist/connectors/workday/connector.json +186 -0
- package/dist/connectors/workday/index.d.ts +8 -0
- package/dist/connectors/workday/index.js +7 -0
- package/dist/connectors/workday/index.js.map +1 -0
- package/dist/connectors/workday/tools.d.ts +33 -0
- package/dist/connectors/workday/tools.js +410 -0
- package/dist/connectors/workday/tools.js.map +1 -0
- package/dist/connectors/workday/vendor.d.ts +18 -0
- package/dist/connectors/workday/vendor.js +195 -0
- package/dist/connectors/workday/vendor.js.map +1 -0
- package/dist/packages/connector-kit/src/branding.d.ts +57 -0
- package/dist/packages/connector-kit/src/branding.js +102 -0
- package/dist/packages/connector-kit/src/branding.js.map +1 -0
- package/dist/packages/connector-kit/src/certificate.d.ts +19 -0
- package/dist/packages/connector-kit/src/certificate.js +84 -0
- package/dist/packages/connector-kit/src/certificate.js.map +1 -0
- package/dist/packages/connector-kit/src/common.d.ts +40 -0
- package/dist/packages/connector-kit/src/common.js +107 -0
- package/dist/packages/connector-kit/src/common.js.map +1 -0
- package/dist/packages/connector-kit/src/connector.d.ts +1346 -0
- package/dist/packages/connector-kit/src/connector.js +1034 -0
- package/dist/packages/connector-kit/src/connector.js.map +1 -0
- package/dist/packages/connector-kit/src/index.d.ts +5 -0
- package/dist/packages/connector-kit/src/index.js +5 -0
- package/dist/packages/connector-kit/src/index.js.map +1 -0
- package/dist/packages/connector-kit/src/oauth.d.ts +15 -0
- package/dist/packages/connector-kit/src/oauth.js +96 -0
- package/dist/packages/connector-kit/src/oauth.js.map +1 -0
- package/dist/packages/connector-kit/src/types.d.ts +85 -0
- package/dist/packages/connector-kit/src/types.js +20 -0
- package/dist/packages/connector-kit/src/types.js.map +1 -0
- package/dist/packages/server/migrations/0001_tables.sql +268 -0
- package/dist/packages/server/migrations/0002_organizations.sql +72 -0
- package/dist/packages/server/migrations/0003_drop_unused.sql +3 -0
- package/dist/packages/server/migrations/0004_trigger_runners.sql +15 -0
- package/dist/packages/server/migrations/0005_run_runner.sql +3 -0
- package/dist/packages/server/migrations/0006_approvals.sql +36 -0
- package/dist/packages/server/migrations/0007_app_events.sql +110 -0
- package/dist/packages/server/migrations/rollback/to-legacy.sql +90 -0
- package/dist/packages/server/src/api.d.ts +3714 -0
- package/dist/packages/server/src/api.js +818 -0
- package/dist/packages/server/src/api.js.map +1 -0
- package/dist/packages/server/src/app.d.ts +23 -0
- package/dist/packages/server/src/app.js +467 -0
- package/dist/packages/server/src/app.js.map +1 -0
- package/dist/packages/server/src/builtin.d.ts +4 -0
- package/dist/packages/server/src/builtin.js +42 -0
- package/dist/packages/server/src/builtin.js.map +1 -0
- package/dist/packages/server/src/consent.d.ts +27 -0
- package/dist/packages/server/src/consent.js +36 -0
- package/dist/packages/server/src/consent.js.map +1 -0
- package/dist/packages/server/src/events/admin.d.ts +156 -0
- package/dist/packages/server/src/events/admin.js +255 -0
- package/dist/packages/server/src/events/admin.js.map +1 -0
- package/dist/packages/server/src/events/deliver.d.ts +43 -0
- package/dist/packages/server/src/events/deliver.js +129 -0
- package/dist/packages/server/src/events/deliver.js.map +1 -0
- package/dist/packages/server/src/events/runtime.d.ts +28 -0
- package/dist/packages/server/src/events/runtime.js +397 -0
- package/dist/packages/server/src/events/runtime.js.map +1 -0
- package/dist/packages/server/src/events/store.d.ts +172 -0
- package/dist/packages/server/src/events/store.js +275 -0
- package/dist/packages/server/src/events/store.js.map +1 -0
- package/dist/packages/server/src/index.d.ts +40 -0
- package/dist/packages/server/src/index.js +185 -0
- package/dist/packages/server/src/index.js.map +1 -0
- package/dist/packages/server/src/migrate.d.ts +11 -0
- package/dist/packages/server/src/migrate.js +134 -0
- package/dist/packages/server/src/migrate.js.map +1 -0
- package/dist/packages/server/src/openapi.d.ts +4 -0
- package/dist/packages/server/src/openapi.js +101 -0
- package/dist/packages/server/src/openapi.js.map +1 -0
- package/dist/packages/server/src/queue.d.ts +10 -0
- package/dist/packages/server/src/queue.js +45 -0
- package/dist/packages/server/src/queue.js.map +1 -0
- package/dist/packages/server/src/secrets.d.ts +19 -0
- package/dist/packages/server/src/secrets.js +76 -0
- package/dist/packages/server/src/secrets.js.map +1 -0
- package/dist/packages/server/src/server.d.ts +1 -0
- package/dist/packages/server/src/server.js +82 -0
- package/dist/packages/server/src/server.js.map +1 -0
- package/dist/packages/server/src/service.d.ts +760 -0
- package/dist/packages/server/src/service.js +918 -0
- package/dist/packages/server/src/service.js.map +1 -0
- package/dist/packages/server/src/store.d.ts +158 -0
- package/dist/packages/server/src/store.js +415 -0
- package/dist/packages/server/src/store.js.map +1 -0
- package/dist/packages/server/src/teams/activity.d.ts +123 -0
- package/dist/packages/server/src/teams/activity.js +188 -0
- package/dist/packages/server/src/teams/activity.js.map +1 -0
- package/dist/packages/server/src/teams/admin.d.ts +335 -0
- package/dist/packages/server/src/teams/admin.js +699 -0
- package/dist/packages/server/src/teams/admin.js.map +1 -0
- package/dist/packages/server/src/teams/approval.d.ts +57 -0
- package/dist/packages/server/src/teams/approval.js +118 -0
- package/dist/packages/server/src/teams/approval.js.map +1 -0
- package/dist/packages/server/src/teams/bot.d.ts +25 -0
- package/dist/packages/server/src/teams/bot.js +124 -0
- package/dist/packages/server/src/teams/bot.js.map +1 -0
- package/dist/packages/server/src/teams/claude.d.ts +46 -0
- package/dist/packages/server/src/teams/claude.js +165 -0
- package/dist/packages/server/src/teams/claude.js.map +1 -0
- package/dist/packages/server/src/teams/jwt.d.ts +17 -0
- package/dist/packages/server/src/teams/jwt.js +121 -0
- package/dist/packages/server/src/teams/jwt.js.map +1 -0
- package/dist/packages/server/src/teams/package.d.ts +79 -0
- package/dist/packages/server/src/teams/package.js +319 -0
- package/dist/packages/server/src/teams/package.js.map +1 -0
- package/dist/packages/server/src/teams/provision.d.ts +84 -0
- package/dist/packages/server/src/teams/provision.js +505 -0
- package/dist/packages/server/src/teams/provision.js.map +1 -0
- package/dist/packages/server/src/teams/runner.d.ts +80 -0
- package/dist/packages/server/src/teams/runner.js +187 -0
- package/dist/packages/server/src/teams/runner.js.map +1 -0
- package/dist/packages/server/src/teams/runtime.d.ts +91 -0
- package/dist/packages/server/src/teams/runtime.js +679 -0
- package/dist/packages/server/src/teams/runtime.js.map +1 -0
- package/dist/packages/server/src/teams/store.d.ts +233 -0
- package/dist/packages/server/src/teams/store.js +507 -0
- package/dist/packages/server/src/teams/store.js.map +1 -0
- package/package.json +68 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../connectors/okta/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Fetch, type Vendor, type VendorRequest } from "../../packages/connector-kit/src/types.js";
|
|
2
|
+
export declare function normalizeOrg(input: string): string;
|
|
3
|
+
/** The scope a Management API call needs: okta.<resource>.read for a GET, .manage otherwise. */
|
|
4
|
+
export declare function scopeFor(request: VendorRequest): string;
|
|
5
|
+
export declare function parsePrivateKey(raw: string): string;
|
|
6
|
+
export declare function clientAssertion(input: {
|
|
7
|
+
clientId: string;
|
|
8
|
+
keyId: string;
|
|
9
|
+
privateKey: string;
|
|
10
|
+
tokenUrl: string;
|
|
11
|
+
}): string;
|
|
12
|
+
/** The `after` cursor of a Link header's rel="next" page. */
|
|
13
|
+
export declare function nextAfter(link: string | null): string | null;
|
|
14
|
+
export declare function oktaVendor(fetchImpl?: Fetch): Vendor;
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { createHash, createPrivateKey, randomUUID, sign } from "node:crypto";
|
|
2
|
+
import { vendorError } from "../../packages/connector-kit/src/oauth.js";
|
|
3
|
+
import { ConnectError, TokenCache, } from "../../packages/connector-kit/src/types.js";
|
|
4
|
+
// An Okta API service app: OAuth 2.0 client credentials from the org authorization server
|
|
5
|
+
// (`/oauth2/v1/token`), the app proving itself with a private_key_jwt client assertion (RS256,
|
|
6
|
+
// iss = sub = client id, aud = the token URL, 5 minutes). Okta has no catch-all scope, and a
|
|
7
|
+
// token request naming a scope the app was not granted is refused whole, so every call gets a
|
|
8
|
+
// token for the one scope its path and method need (`scopeFor`). Lists come back as
|
|
9
|
+
// `{items, after}`: Okta pages with a Link header, whose `after` is the next page's cursor.
|
|
10
|
+
// Sources: developer.okta.com/docs/guides/implement-oauth-for-okta-serviceapp,
|
|
11
|
+
// developer.okta.com/docs/api/openapi/okta-oauth/guides/client-auth (private_key_jwt) and
|
|
12
|
+
// developer.okta.com/docs/api/#pagination (read October 27, 2026).
|
|
13
|
+
// The org's own Okta address; an admin address (acme-admin.okta.com) is its org's too.
|
|
14
|
+
const ORG_HOST = /^[a-z0-9][a-z0-9-]*\.(okta|oktapreview|okta-emea|okta-gov)\.com$/;
|
|
15
|
+
const CLIENT_ID = /^[A-Za-z0-9_-]{8,64}$/;
|
|
16
|
+
const KEY_ID = /^[A-Za-z0-9_.-]{1,128}$/;
|
|
17
|
+
const RESOURCES = new Set(["users", "groups", "apps", "logs"]);
|
|
18
|
+
export function normalizeOrg(input) {
|
|
19
|
+
let host = input
|
|
20
|
+
.trim()
|
|
21
|
+
.toLowerCase()
|
|
22
|
+
.replace(/^https?:\/\//, "")
|
|
23
|
+
.replace(/\/.*$/, "");
|
|
24
|
+
if (/^[a-z0-9][a-z0-9-]*$/.test(host))
|
|
25
|
+
host = `${host}.okta.com`;
|
|
26
|
+
host = host.replace(/-admin\./, ".");
|
|
27
|
+
if (!ORG_HOST.test(host))
|
|
28
|
+
throw new ConnectError("Enter your Okta address, such as your-company.okta.com");
|
|
29
|
+
return host;
|
|
30
|
+
}
|
|
31
|
+
/** The scope a Management API call needs: okta.<resource>.read for a GET, .manage otherwise. */
|
|
32
|
+
export function scopeFor(request) {
|
|
33
|
+
const resource = /^\/api\/v1\/([a-z]+)(?:[/?]|$)/.exec(request.path)?.[1];
|
|
34
|
+
if (!resource || !RESOURCES.has(resource))
|
|
35
|
+
throw new Error(`No Okta scope for ${request.path}`);
|
|
36
|
+
return `okta.${resource}.${request.method === "GET" ? "read" : "manage"}`;
|
|
37
|
+
}
|
|
38
|
+
// Okta's console offers the generated key as PEM or as a JWK; either is kept as PKCS#8 PEM.
|
|
39
|
+
export function parsePrivateKey(raw) {
|
|
40
|
+
let key;
|
|
41
|
+
try {
|
|
42
|
+
const text = raw.trim();
|
|
43
|
+
key = text.startsWith("{")
|
|
44
|
+
? createPrivateKey({ key: JSON.parse(text), format: "jwk" })
|
|
45
|
+
: createPrivateKey(text);
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
throw new ConnectError("The private key could not be read. Paste the whole key Okta showed.");
|
|
49
|
+
}
|
|
50
|
+
if (key.asymmetricKeyType !== "rsa")
|
|
51
|
+
throw new ConnectError("Okta signs in with an RSA key. Generate an RSA key in the app.");
|
|
52
|
+
return key.export({ type: "pkcs8", format: "pem" }).toString();
|
|
53
|
+
}
|
|
54
|
+
export function clientAssertion(input) {
|
|
55
|
+
const now = Math.floor(Date.now() / 1000);
|
|
56
|
+
const part = (o) => Buffer.from(JSON.stringify(o)).toString("base64url");
|
|
57
|
+
const signed = `${part({ alg: "RS256", typ: "JWT", kid: input.keyId })}.${part({
|
|
58
|
+
iss: input.clientId,
|
|
59
|
+
sub: input.clientId,
|
|
60
|
+
aud: input.tokenUrl,
|
|
61
|
+
iat: now,
|
|
62
|
+
exp: now + 300,
|
|
63
|
+
jti: randomUUID(),
|
|
64
|
+
})}`;
|
|
65
|
+
const signature = sign("sha256", Buffer.from(signed), input.privateKey).toString("base64url");
|
|
66
|
+
return `${signed}.${signature}`;
|
|
67
|
+
}
|
|
68
|
+
/** The `after` cursor of a Link header's rel="next" page. */
|
|
69
|
+
export function nextAfter(link) {
|
|
70
|
+
for (const part of (link ?? "").split(",")) {
|
|
71
|
+
const m = /<([^>]+)>\s*;\s*rel="next"/.exec(part);
|
|
72
|
+
if (m)
|
|
73
|
+
return URL.parse(m[1])?.searchParams.get("after") ?? null;
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
function safeJson(raw) {
|
|
78
|
+
try {
|
|
79
|
+
return JSON.parse(raw);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return raw;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class ScopeRefused extends ConnectError {
|
|
86
|
+
}
|
|
87
|
+
export function oktaVendor(fetchImpl = fetch) {
|
|
88
|
+
const tokens = new TokenCache();
|
|
89
|
+
function host(c) {
|
|
90
|
+
const org = c.config.org ?? "";
|
|
91
|
+
if (!ORG_HOST.test(org))
|
|
92
|
+
throw new Error("Okta connection has no org");
|
|
93
|
+
return `https://${org}`;
|
|
94
|
+
}
|
|
95
|
+
async function mint(c, scope) {
|
|
96
|
+
const tokenUrl = `${host(c)}/oauth2/v1/token`;
|
|
97
|
+
const res = await fetchImpl(tokenUrl, {
|
|
98
|
+
method: "POST",
|
|
99
|
+
headers: { "content-type": "application/x-www-form-urlencoded", accept: "application/json" },
|
|
100
|
+
redirect: "error",
|
|
101
|
+
body: new URLSearchParams({
|
|
102
|
+
grant_type: "client_credentials",
|
|
103
|
+
scope,
|
|
104
|
+
client_assertion_type: "urn:ietf:params:oauth:client-assertion-type:jwt-bearer",
|
|
105
|
+
client_assertion: clientAssertion({
|
|
106
|
+
clientId: c.config.clientId,
|
|
107
|
+
keyId: c.config.keyId,
|
|
108
|
+
privateKey: c.secret.private_key,
|
|
109
|
+
tokenUrl,
|
|
110
|
+
}),
|
|
111
|
+
}),
|
|
112
|
+
});
|
|
113
|
+
const body = safeJson(await res.text());
|
|
114
|
+
if (!res.ok || typeof body?.access_token !== "string") {
|
|
115
|
+
const why = vendorError(body) || String(res.status);
|
|
116
|
+
if (body?.error === "invalid_scope")
|
|
117
|
+
throw new ScopeRefused(`Okta has not granted the app ${scope}: ${why}`);
|
|
118
|
+
if (/dpop/i.test(why))
|
|
119
|
+
throw new ConnectError(`Okta wants a proof-of-possession header (DPoP). In the app's General tab, edit Client Credentials and clear "Require Demonstrating Proof of Possession (DPoP) header in token requests". (${why})`);
|
|
120
|
+
throw new ConnectError(`Okta refused the app's sign-in: ${why}`);
|
|
121
|
+
}
|
|
122
|
+
return { token: body.access_token, expiresIn: Number(body.expires_in) || 3600 };
|
|
123
|
+
}
|
|
124
|
+
// Per credential and scope, so a new key never reuses an old token.
|
|
125
|
+
const cacheKey = (c, scope) => createHash("sha256")
|
|
126
|
+
.update([c.config.org, c.config.clientId, c.config.keyId, c.secret.private_key, scope].join("\n"))
|
|
127
|
+
.digest("hex");
|
|
128
|
+
async function send(c, token, request) {
|
|
129
|
+
const res = await fetchImpl(`${host(c)}${request.path}`, {
|
|
130
|
+
method: request.method,
|
|
131
|
+
headers: {
|
|
132
|
+
authorization: `Bearer ${token}`,
|
|
133
|
+
accept: "application/json",
|
|
134
|
+
...request.headers,
|
|
135
|
+
...(request.body === undefined ? {} : { "content-type": "application/json" }),
|
|
136
|
+
},
|
|
137
|
+
body: request.body === undefined ? undefined : JSON.stringify(request.body),
|
|
138
|
+
redirect: "error",
|
|
139
|
+
});
|
|
140
|
+
const raw = await res.text();
|
|
141
|
+
const data = raw ? safeJson(raw) : null;
|
|
142
|
+
return {
|
|
143
|
+
status: res.status,
|
|
144
|
+
data: Array.isArray(data) ? { items: data, after: nextAfter(res.headers.get("link")) } : data,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
return {
|
|
148
|
+
async connect(fields) {
|
|
149
|
+
const org = normalizeOrg(fields.org ?? "");
|
|
150
|
+
const clientId = fields.client_id?.trim() ?? "";
|
|
151
|
+
const keyId = fields.key_id?.trim() ?? "";
|
|
152
|
+
if (!CLIENT_ID.test(clientId))
|
|
153
|
+
throw new ConnectError("Enter the app's Client ID, from its General tab");
|
|
154
|
+
if (!KEY_ID.test(keyId))
|
|
155
|
+
throw new ConnectError("Enter the key's KID, shown beside the key in the app's General tab");
|
|
156
|
+
const connection = {
|
|
157
|
+
config: { org, clientId, keyId },
|
|
158
|
+
secret: { private_key: parsePrivateKey(fields.private_key ?? "") },
|
|
159
|
+
};
|
|
160
|
+
// okta.users.read is every connection's least: proves the key, the app and the org.
|
|
161
|
+
const scope = "okta.users.read";
|
|
162
|
+
await tokens.get(cacheKey(connection, scope), () => mint(connection, scope));
|
|
163
|
+
return { ...connection, accountLabel: org };
|
|
164
|
+
},
|
|
165
|
+
async call(connection, request) {
|
|
166
|
+
const scope = scopeFor(request);
|
|
167
|
+
const key = cacheKey(connection, scope);
|
|
168
|
+
const token = () => tokens.get(key, () => mint(connection, scope));
|
|
169
|
+
let res = await send(connection, await token(), request);
|
|
170
|
+
if (res.status === 401) {
|
|
171
|
+
tokens.forget(key);
|
|
172
|
+
res = await send(connection, await token(), request);
|
|
173
|
+
}
|
|
174
|
+
return res;
|
|
175
|
+
},
|
|
176
|
+
checks: {
|
|
177
|
+
// One token request per scope the ceiling needs: Okta answers invalid_scope for one
|
|
178
|
+
// not granted. Extra grants are the admin's choice, so only missing ones are named.
|
|
179
|
+
async scopes(connection, input) {
|
|
180
|
+
const granted = [];
|
|
181
|
+
for (const scope of input.expected)
|
|
182
|
+
try {
|
|
183
|
+
await mint(connection, scope);
|
|
184
|
+
granted.push(scope);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
if (!(error instanceof ScopeRefused))
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
const missing = input.expected.filter((s) => !granted.includes(s));
|
|
191
|
+
return {
|
|
192
|
+
values: granted,
|
|
193
|
+
...(missing.length
|
|
194
|
+
? {
|
|
195
|
+
warning: `Missing: ${missing.join(", ")}. Grant ${missing.length > 1 ? "them" : "it"} on the app's Okta API Scopes tab, or agents cannot do what you ticked.`,
|
|
196
|
+
}
|
|
197
|
+
: {}),
|
|
198
|
+
};
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=vendor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../connectors/okta/vendor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "outlook-calendar",
|
|
3
|
+
"name": "Outlook calendar",
|
|
4
|
+
"description": "Let each agent read and manage the calendar of its own mailbox.",
|
|
5
|
+
"logo": "/brand/outlook.svg",
|
|
6
|
+
"identity": "Your Microsoft app registration, through the Microsoft connection. Exchange lets it open only the calendars of mailboxes you choose for agents, and it uses no Microsoft 365 license.",
|
|
7
|
+
"provider": "microsoft",
|
|
8
|
+
"order": 2,
|
|
9
|
+
"accountKey": "tenantId",
|
|
10
|
+
"connectionKind": "guided",
|
|
11
|
+
"setup": [
|
|
12
|
+
{
|
|
13
|
+
"title": "Make sure the app cannot open every calendar",
|
|
14
|
+
"body": "Outlook calendar needs no Microsoft Graph permission on the app. Do not add Calendars.Read or Calendars.ReadWrite under API permissions: they open every calendar in your organization.",
|
|
15
|
+
"click": [
|
|
16
|
+
"In the Microsoft Entra admin center, go to Entra ID, then App registrations, open {brand.microsoft.appName} and select API permissions.",
|
|
17
|
+
"Check that no Calendars permission is listed. Remove any that is."
|
|
18
|
+
],
|
|
19
|
+
"copy": ["az ad app permission list --id {clientId} -o table"],
|
|
20
|
+
"shell": "bash"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"title": "Create the {brand.microsoft.mailboxGroup} group",
|
|
24
|
+
"body": "Agents can only reach mailboxes in this mail-enabled security group, the same one Outlook mail uses. If you created it there, it shows as done here.",
|
|
25
|
+
"link": {
|
|
26
|
+
"label": "Open the Exchange admin center",
|
|
27
|
+
"href": "https://admin.exchange.microsoft.com/#/groups"
|
|
28
|
+
},
|
|
29
|
+
"click": [
|
|
30
|
+
"In the Exchange admin center, go to Recipients, then Groups, then Mail-enabled security, and select Add a group.",
|
|
31
|
+
"Choose Mail-enabled security and select Next. Name it {brand.microsoft.mailboxGroup}, then Next.",
|
|
32
|
+
"Assign yourself as owner, skip members (you add each agent's mailbox later), then Next.",
|
|
33
|
+
"On Edit settings, enter a group email address such as {brand.microsoft.mailboxGroupAlias}@your-domain, then Next and Create group."
|
|
34
|
+
],
|
|
35
|
+
"copy": [
|
|
36
|
+
"# Needs the ExchangeOnlineManagement module: Install-Module ExchangeOnlineManagement -Scope CurrentUser",
|
|
37
|
+
"Connect-ExchangeOnline",
|
|
38
|
+
"if (-not (Get-DistributionGroup -Identity '{brand.microsoft.mailboxGroup}' -ErrorAction SilentlyContinue)) { New-DistributionGroup -Name '{brand.microsoft.mailboxGroup}' -Type Security }"
|
|
39
|
+
],
|
|
40
|
+
"shell": "powershell",
|
|
41
|
+
"confirm": "mailbox-group"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"title": "Limit the app to the calendars in that group",
|
|
45
|
+
"body": "This is the only calendar access the app gets. Exchange enforces it, so the app cannot open any other calendar. The role lines follow what you ticked in step 1; if you tick more later, run the matching New-ManagementRoleAssignment line again. Lines for what already exists (from Outlook mail) are skipped. Exchange can take up to 2 hours to apply this before Check access passes.",
|
|
46
|
+
"link": {
|
|
47
|
+
"label": "Connect to Exchange Online PowerShell",
|
|
48
|
+
"href": "https://learn.microsoft.com/powershell/exchange/connect-to-exchange-online-powershell"
|
|
49
|
+
},
|
|
50
|
+
"clickUnavailable": true,
|
|
51
|
+
"copy": [
|
|
52
|
+
"# Needs the ExchangeOnlineManagement module: Install-Module ExchangeOnlineManagement -Scope CurrentUser",
|
|
53
|
+
"Connect-ExchangeOnline",
|
|
54
|
+
"if (-not (Get-ServicePrincipal -Identity {clientId} -ErrorAction SilentlyContinue)) { New-ServicePrincipal -AppId {clientId} -ObjectId {servicePrincipalId} -DisplayName \"{brand.microsoft.appName}\" }",
|
|
55
|
+
"if (-not (Get-ManagementScope -Identity \"{brand.microsoft.mailboxGroup}\" -ErrorAction SilentlyContinue)) { New-ManagementScope -Name \"{brand.microsoft.mailboxGroup}\" -RecipientRestrictionFilter \"MemberOfGroup -eq '$((Get-DistributionGroup '{brand.microsoft.mailboxGroup}').DistinguishedName)'\" }",
|
|
56
|
+
"New-ManagementRoleAssignment -Role \"{scope}\" -App {clientId} -CustomResourceScope \"{brand.microsoft.mailboxGroup}\""
|
|
57
|
+
],
|
|
58
|
+
"shell": "powershell",
|
|
59
|
+
"confirm": "calendar-roles"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"afterConnect": [],
|
|
63
|
+
"fields": [],
|
|
64
|
+
"capabilities": [
|
|
65
|
+
{
|
|
66
|
+
"id": "read",
|
|
67
|
+
"label": "Read events",
|
|
68
|
+
"description": "List and read events in the agent's own calendar.",
|
|
69
|
+
"required": true,
|
|
70
|
+
"scopes": ["Application Calendars.Read"],
|
|
71
|
+
"roles": [],
|
|
72
|
+
"permissions": [],
|
|
73
|
+
"tools": ["calendar_list_events", "calendar_get_event"],
|
|
74
|
+
"forbidden": "Microsoft refused this. The app needs the Exchange role {scopes} on the {brand.microsoft.mailboxGroup} scope, and this mailbox must be in that group. A role added in the last hour may not apply yet."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "write",
|
|
78
|
+
"label": "Create, update and answer events, and send invitations",
|
|
79
|
+
"description": "Add events to the agent's own calendar, including repeating ones, and change them. Accept, tentatively accept or decline invitations, which can email the organizer. Attendees get an invitation email from the agent's mailbox, and they can be any address.",
|
|
80
|
+
"scopes": ["Application Calendars.ReadWrite"],
|
|
81
|
+
"roles": [],
|
|
82
|
+
"permissions": [],
|
|
83
|
+
"tools": ["calendar_create_event", "calendar_update_event", "calendar_respond_to_event"],
|
|
84
|
+
"forbidden": "Microsoft refused this. The app needs the Exchange role {scopes} on the {brand.microsoft.mailboxGroup} scope, and this mailbox must be in that group. A role added in the last hour may not apply yet."
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "delete",
|
|
88
|
+
"label": "Delete events",
|
|
89
|
+
"description": "Delete events from the agent's own calendar, one occurrence or a whole repeating series. They cannot be brought back from here.",
|
|
90
|
+
"destructive": true,
|
|
91
|
+
"scopes": ["Application Calendars.ReadWrite"],
|
|
92
|
+
"roles": [],
|
|
93
|
+
"permissions": [],
|
|
94
|
+
"tools": ["calendar_delete_event"],
|
|
95
|
+
"forbidden": "Microsoft refused this. The app needs the Exchange role {scopes} on the {brand.microsoft.mailboxGroup} scope, and this mailbox must be in that group. A role added in the last hour may not apply yet."
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"limits": [
|
|
99
|
+
{
|
|
100
|
+
"id": "mailbox",
|
|
101
|
+
"label": "Mailbox",
|
|
102
|
+
"help": "The agent's own mailbox, a member of {brand.microsoft.mailboxGroup}. The agent can use no other calendar.",
|
|
103
|
+
"kind": "text",
|
|
104
|
+
"required": true,
|
|
105
|
+
"pattern": "^[A-Za-z0-9._+-]+@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)+$"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"verify": {
|
|
109
|
+
"label": "Microsoft Graph permissions on the app (Outlook calendar needs none: Exchange limits it to the {brand.microsoft.mailboxGroup} group)",
|
|
110
|
+
"check": "permissions"
|
|
111
|
+
},
|
|
112
|
+
"revoke": "In Exchange Online PowerShell, remove the app's calendar access with Get-ManagementRoleAssignment -RoleAssignee {clientId} | Where-Object Role -like \"Application Calendars*\" | Remove-ManagementRoleAssignment. To stop every Microsoft app at once, remove the app registration (see the Microsoft connection).",
|
|
113
|
+
"agentAccess": {
|
|
114
|
+
"limit": "mailbox",
|
|
115
|
+
"label": "Exchange lets the app open an agent's calendar",
|
|
116
|
+
"path": "/v1.0/users/{value}/calendar?$select=id",
|
|
117
|
+
"granted": "The app can open this calendar.",
|
|
118
|
+
"notGranted": "Exchange does not let the app open this calendar yet. Check that the mailbox is in {brand.microsoft.mailboxGroup} and that the calendar roles were given. Run Test-ServicePrincipalAuthorization to see which roles apply. Microsoft can take up to about 2 hours to apply a change.",
|
|
119
|
+
"notFound": "Exchange shows the app no calendar at this address. Either there is none yet (check the address, or wait a few minutes if you just created it), or it is not in {brand.microsoft.mailboxGroup} yet: Exchange answers the same for a mailbox the app may not open. Microsoft can take up to about 2 hours to apply a change.",
|
|
120
|
+
"probes": {
|
|
121
|
+
"write": {
|
|
122
|
+
"method": "PATCH",
|
|
123
|
+
"path": "/v1.0/users/{value}/calendar",
|
|
124
|
+
"body": {},
|
|
125
|
+
"allowed": [200]
|
|
126
|
+
},
|
|
127
|
+
"delete": {
|
|
128
|
+
"method": "PATCH",
|
|
129
|
+
"path": "/v1.0/users/{value}/calendar",
|
|
130
|
+
"body": {},
|
|
131
|
+
"allowed": [200]
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"missing": "The app can open this calendar but Exchange does not let it do this yet: {missing}. Give that role (the step Limit the app to the calendars in that group, on the Outlook calendar page) and check again. Microsoft can take up to about 2 hours to apply a change."
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../connectors/outlook-calendar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAe,YAAY,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type Toolset } from "../../packages/connector-kit/src/common.js";
|
|
2
|
+
export declare const MAX_RANGE_DAYS = 62;
|
|
3
|
+
export declare const MAX_OCCURRENCES = 999;
|
|
4
|
+
declare const DAYS: readonly ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
|
5
|
+
type Day = (typeof DAYS)[number];
|
|
6
|
+
export type RecurrenceInput = {
|
|
7
|
+
pattern: "daily" | "weekly" | "monthly" | "yearly";
|
|
8
|
+
interval: number;
|
|
9
|
+
days_of_week?: Day[];
|
|
10
|
+
end_date?: string;
|
|
11
|
+
count?: number;
|
|
12
|
+
};
|
|
13
|
+
/** The listing window as UTC instants; refused when unbounded, reversed or too long. */
|
|
14
|
+
export declare function eventWindow(start: string, end: string): {
|
|
15
|
+
start: string;
|
|
16
|
+
end: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Microsoft's patternedRecurrence for a series whose first event starts on `startDate`
|
|
20
|
+
* (YYYY-MM-DD, read in `timeZone`). Monthly and yearly repeat on the start's day (and month);
|
|
21
|
+
* weekly defaults to the start's weekday. Every series ends, by date or by count.
|
|
22
|
+
* https://learn.microsoft.com/graph/outlook-schedule-recurring-events
|
|
23
|
+
*/
|
|
24
|
+
export declare function recurrence(r: RecurrenceInput, startDate: string, timeZone: string): {
|
|
25
|
+
pattern: {
|
|
26
|
+
type: string;
|
|
27
|
+
interval: number;
|
|
28
|
+
daysOfWeek?: undefined;
|
|
29
|
+
dayOfMonth?: undefined;
|
|
30
|
+
month?: undefined;
|
|
31
|
+
} | {
|
|
32
|
+
type: string;
|
|
33
|
+
interval: number;
|
|
34
|
+
daysOfWeek: ("sunday" | "monday" | "tuesday" | "wednesday" | "thursday" | "friday" | "saturday")[];
|
|
35
|
+
dayOfMonth?: undefined;
|
|
36
|
+
month?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
type: string;
|
|
39
|
+
interval: number;
|
|
40
|
+
dayOfMonth: number;
|
|
41
|
+
daysOfWeek?: undefined;
|
|
42
|
+
month?: undefined;
|
|
43
|
+
} | {
|
|
44
|
+
type: string;
|
|
45
|
+
interval: number;
|
|
46
|
+
dayOfMonth: number;
|
|
47
|
+
month: number;
|
|
48
|
+
daysOfWeek?: undefined;
|
|
49
|
+
};
|
|
50
|
+
range: {
|
|
51
|
+
type: string;
|
|
52
|
+
startDate: string;
|
|
53
|
+
endDate: string;
|
|
54
|
+
recurrenceTimeZone: string;
|
|
55
|
+
numberOfOccurrences?: undefined;
|
|
56
|
+
} | {
|
|
57
|
+
type: string;
|
|
58
|
+
startDate: string;
|
|
59
|
+
numberOfOccurrences: number | undefined;
|
|
60
|
+
recurrenceTimeZone: string;
|
|
61
|
+
endDate?: undefined;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export declare const calendarTools: Toolset;
|
|
65
|
+
export {};
|