@notiflows/node 0.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/LICENSE +201 -0
- package/README.md +422 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +207 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +207 -0
- package/client.d.ts.map +1 -0
- package/client.js +502 -0
- package/client.js.map +1 -0
- package/client.mjs +498 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/pagination.d.mts +59 -0
- package/core/pagination.d.mts.map +1 -0
- package/core/pagination.d.ts +59 -0
- package/core/pagination.d.ts.map +1 -0
- package/core/pagination.js +101 -0
- package/core/pagination.js.map +1 -0
- package/core/pagination.mjs +95 -0
- package/core/pagination.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +7 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -0
- package/index.js +32 -0
- package/index.js.map +1 -0
- package/index.mjs +8 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +40 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +37 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +75 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +75 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +87 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +81 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +147 -0
- package/pagination.d.mts +2 -0
- package/pagination.d.mts.map +1 -0
- package/pagination.d.ts +2 -0
- package/pagination.d.ts.map +1 -0
- package/pagination.js +6 -0
- package/pagination.js.map +1 -0
- package/pagination.mjs +2 -0
- package/pagination.mjs.map +1 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/deliveries.d.mts +143 -0
- package/resources/deliveries.d.mts.map +1 -0
- package/resources/deliveries.d.ts +143 -0
- package/resources/deliveries.d.ts.map +1 -0
- package/resources/deliveries.js +44 -0
- package/resources/deliveries.js.map +1 -0
- package/resources/deliveries.mjs +40 -0
- package/resources/deliveries.mjs.map +1 -0
- package/resources/index.d.mts +6 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +6 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +15 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +7 -0
- package/resources/index.mjs.map +1 -0
- package/resources/notifications.d.mts +170 -0
- package/resources/notifications.d.mts.map +1 -0
- package/resources/notifications.d.ts +170 -0
- package/resources/notifications.d.ts.map +1 -0
- package/resources/notifications.js +58 -0
- package/resources/notifications.js.map +1 -0
- package/resources/notifications.mjs +54 -0
- package/resources/notifications.mjs.map +1 -0
- package/resources/notiflows.d.mts +122 -0
- package/resources/notiflows.d.mts.map +1 -0
- package/resources/notiflows.d.ts +122 -0
- package/resources/notiflows.d.ts.map +1 -0
- package/resources/notiflows.js +36 -0
- package/resources/notiflows.js.map +1 -0
- package/resources/notiflows.mjs +32 -0
- package/resources/notiflows.mjs.map +1 -0
- package/resources/topics/index.d.mts +3 -0
- package/resources/topics/index.d.mts.map +1 -0
- package/resources/topics/index.d.ts +3 -0
- package/resources/topics/index.d.ts.map +1 -0
- package/resources/topics/index.js +9 -0
- package/resources/topics/index.js.map +1 -0
- package/resources/topics/index.mjs +4 -0
- package/resources/topics/index.mjs.map +1 -0
- package/resources/topics/subscriptions.d.mts +137 -0
- package/resources/topics/subscriptions.d.mts.map +1 -0
- package/resources/topics/subscriptions.d.ts +137 -0
- package/resources/topics/subscriptions.d.ts.map +1 -0
- package/resources/topics/subscriptions.js +78 -0
- package/resources/topics/subscriptions.js.map +1 -0
- package/resources/topics/subscriptions.mjs +74 -0
- package/resources/topics/subscriptions.mjs.map +1 -0
- package/resources/topics/topics.d.mts +70 -0
- package/resources/topics/topics.d.mts.map +1 -0
- package/resources/topics/topics.d.ts +70 -0
- package/resources/topics/topics.d.ts.map +1 -0
- package/resources/topics/topics.js +65 -0
- package/resources/topics/topics.js.map +1 -0
- package/resources/topics/topics.mjs +60 -0
- package/resources/topics/topics.mjs.map +1 -0
- package/resources/topics.d.mts +2 -0
- package/resources/topics.d.mts.map +1 -0
- package/resources/topics.d.ts +2 -0
- package/resources/topics.d.ts.map +1 -0
- package/resources/topics.js +6 -0
- package/resources/topics.js.map +1 -0
- package/resources/topics.mjs +3 -0
- package/resources/topics.mjs.map +1 -0
- package/resources/users/channel-settings.d.mts +158 -0
- package/resources/users/channel-settings.d.mts.map +1 -0
- package/resources/users/channel-settings.d.ts +158 -0
- package/resources/users/channel-settings.d.ts.map +1 -0
- package/resources/users/channel-settings.js +98 -0
- package/resources/users/channel-settings.js.map +1 -0
- package/resources/users/channel-settings.mjs +94 -0
- package/resources/users/channel-settings.mjs.map +1 -0
- package/resources/users/deliveries.d.mts +71 -0
- package/resources/users/deliveries.d.mts.map +1 -0
- package/resources/users/deliveries.d.ts +71 -0
- package/resources/users/deliveries.d.ts.map +1 -0
- package/resources/users/deliveries.js +45 -0
- package/resources/users/deliveries.js.map +1 -0
- package/resources/users/deliveries.mjs +41 -0
- package/resources/users/deliveries.mjs.map +1 -0
- package/resources/users/index.d.mts +7 -0
- package/resources/users/index.d.mts.map +1 -0
- package/resources/users/index.d.ts +7 -0
- package/resources/users/index.d.ts.map +1 -0
- package/resources/users/index.js +17 -0
- package/resources/users/index.js.map +1 -0
- package/resources/users/index.mjs +8 -0
- package/resources/users/index.mjs.map +1 -0
- package/resources/users/notifications.d.mts +68 -0
- package/resources/users/notifications.d.mts.map +1 -0
- package/resources/users/notifications.d.ts +68 -0
- package/resources/users/notifications.d.ts.map +1 -0
- package/resources/users/notifications.js +43 -0
- package/resources/users/notifications.js.map +1 -0
- package/resources/users/notifications.mjs +39 -0
- package/resources/users/notifications.mjs.map +1 -0
- package/resources/users/preferences.d.mts +166 -0
- package/resources/users/preferences.d.mts.map +1 -0
- package/resources/users/preferences.d.ts +166 -0
- package/resources/users/preferences.d.ts.map +1 -0
- package/resources/users/preferences.js +60 -0
- package/resources/users/preferences.js.map +1 -0
- package/resources/users/preferences.mjs +56 -0
- package/resources/users/preferences.mjs.map +1 -0
- package/resources/users/subscriptions.d.mts +121 -0
- package/resources/users/subscriptions.d.mts.map +1 -0
- package/resources/users/subscriptions.d.ts +121 -0
- package/resources/users/subscriptions.d.ts.map +1 -0
- package/resources/users/subscriptions.js +84 -0
- package/resources/users/subscriptions.js.map +1 -0
- package/resources/users/subscriptions.mjs +80 -0
- package/resources/users/subscriptions.mjs.map +1 -0
- package/resources/users/users.d.mts +216 -0
- package/resources/users/users.d.mts.map +1 -0
- package/resources/users/users.d.ts +216 -0
- package/resources/users/users.d.ts.map +1 -0
- package/resources/users/users.js +102 -0
- package/resources/users/users.js.map +1 -0
- package/resources/users/users.mjs +97 -0
- package/resources/users/users.mjs.map +1 -0
- package/resources/users.d.mts +2 -0
- package/resources/users.d.mts.map +1 -0
- package/resources/users.d.ts +2 -0
- package/resources/users.d.ts.map +1 -0
- package/resources/users.js +6 -0
- package/resources/users.js.map +1 -0
- package/resources/users.mjs +3 -0
- package/resources/users.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +838 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/pagination.ts +163 -0
- package/src/core/resource.ts +11 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +23 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +56 -0
- package/src/internal/request-options.ts +91 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +128 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/pagination.ts +2 -0
- package/src/resource.ts +2 -0
- package/src/resources/deliveries.ts +183 -0
- package/src/resources/index.ts +19 -0
- package/src/resources/notifications.ts +225 -0
- package/src/resources/notiflows.ts +155 -0
- package/src/resources/topics/index.ts +11 -0
- package/src/resources/topics/subscriptions.ts +182 -0
- package/src/resources/topics/topics.ts +115 -0
- package/src/resources/topics.ts +3 -0
- package/src/resources/users/channel-settings.ts +205 -0
- package/src/resources/users/deliveries.ts +103 -0
- package/src/resources/users/index.ts +23 -0
- package/src/resources/users/notifications.ts +100 -0
- package/src/resources/users/preferences.ts +182 -0
- package/src/resources/users/subscriptions.ts +179 -0
- package/src/resources/users/users.ts +324 -0
- package/src/resources/users.ts +3 -0
- package/src/resources.ts +1 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { APIResource } from "../core/resource.js";
|
|
2
|
+
import * as DeliveriesAPI from "./deliveries.js";
|
|
3
|
+
import { DeliveriesCursorPage } from "./deliveries.js";
|
|
4
|
+
import * as UsersAPI from "./users/users.js";
|
|
5
|
+
import { APIPromise } from "../core/api-promise.js";
|
|
6
|
+
import { CursorPage, type CursorPageParams, PagePromise } from "../core/pagination.js";
|
|
7
|
+
import { RequestOptions } from "../internal/request-options.js";
|
|
8
|
+
export declare class Notifications extends APIResource {
|
|
9
|
+
/**
|
|
10
|
+
* Retrieve a single notification by ID, including the recipient, actor, and all
|
|
11
|
+
* delivery attempts.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const notification = await client.notifications.retrieve(
|
|
16
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
retrieve(id: string, options?: RequestOptions): APIPromise<Notification>;
|
|
21
|
+
/**
|
|
22
|
+
* Retrieve a paginated list of all notifications in your project.
|
|
23
|
+
*
|
|
24
|
+
* A notification represents a message sent to a single recipient through a
|
|
25
|
+
* notiflow run. Each notification can have multiple deliveries (one per channel).
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* // Automatically fetches more pages as needed.
|
|
30
|
+
* for await (const notification of client.notifications.list()) {
|
|
31
|
+
* // ...
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
list(query?: NotificationListParams | null | undefined, options?: RequestOptions): PagePromise<NotificationsCursorPage, Notification>;
|
|
36
|
+
/**
|
|
37
|
+
* Retrieve all delivery attempts for a specific notification.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* // Automatically fetches more pages as needed.
|
|
42
|
+
* for await (const delivery of client.notifications.listDeliveries(
|
|
43
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
44
|
+
* )) {
|
|
45
|
+
* // ...
|
|
46
|
+
* }
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
listDeliveries(notificationID: string, query?: NotificationListDeliveriesParams | null | undefined, options?: RequestOptions): PagePromise<DeliveriesCursorPage, DeliveriesAPI.Delivery>;
|
|
50
|
+
}
|
|
51
|
+
export type NotificationsCursorPage = CursorPage<Notification>;
|
|
52
|
+
/**
|
|
53
|
+
* A notification sent to a recipient through a notiflow run
|
|
54
|
+
*/
|
|
55
|
+
export interface Notification {
|
|
56
|
+
/**
|
|
57
|
+
* Notification ID
|
|
58
|
+
*/
|
|
59
|
+
id: string;
|
|
60
|
+
/**
|
|
61
|
+
* When the notification was created
|
|
62
|
+
*/
|
|
63
|
+
created_at: string;
|
|
64
|
+
/**
|
|
65
|
+
* Template variables passed when running the notiflow
|
|
66
|
+
*/
|
|
67
|
+
data: unknown;
|
|
68
|
+
/**
|
|
69
|
+
* ID of the notiflow that generated this notification
|
|
70
|
+
*/
|
|
71
|
+
notiflow_id: string;
|
|
72
|
+
/**
|
|
73
|
+
* ID of the specific notiflow run
|
|
74
|
+
*/
|
|
75
|
+
notiflow_run_id: string;
|
|
76
|
+
/**
|
|
77
|
+
* Internal ID of the recipient user
|
|
78
|
+
*/
|
|
79
|
+
recipient_id: string;
|
|
80
|
+
/**
|
|
81
|
+
* Notification processing status:
|
|
82
|
+
*
|
|
83
|
+
* - `pending`: Queued for processing
|
|
84
|
+
* - `processing`: Currently being processed
|
|
85
|
+
* - `processed`: Successfully processed (deliveries created)
|
|
86
|
+
* - `failed`: Processing failed
|
|
87
|
+
*/
|
|
88
|
+
status: 'pending' | 'processing' | 'processed' | 'failed';
|
|
89
|
+
/**
|
|
90
|
+
* When the notification was last updated
|
|
91
|
+
*/
|
|
92
|
+
updated_at: string;
|
|
93
|
+
/**
|
|
94
|
+
* A user (recipient) in your project
|
|
95
|
+
*/
|
|
96
|
+
actor?: UsersAPI.User | null;
|
|
97
|
+
/**
|
|
98
|
+
* Internal ID of the actor (user who triggered the notification)
|
|
99
|
+
*/
|
|
100
|
+
actor_id?: string | null;
|
|
101
|
+
/**
|
|
102
|
+
* Delivery attempts for this notification (when expanded)
|
|
103
|
+
*/
|
|
104
|
+
deliveries?: Array<DeliveriesAPI.Delivery>;
|
|
105
|
+
/**
|
|
106
|
+
* When the notification was processed
|
|
107
|
+
*/
|
|
108
|
+
processed_at?: string | null;
|
|
109
|
+
/**
|
|
110
|
+
* A user (recipient) in your project
|
|
111
|
+
*/
|
|
112
|
+
recipient?: UsersAPI.User;
|
|
113
|
+
/**
|
|
114
|
+
* Topic name if triggered via topic
|
|
115
|
+
*/
|
|
116
|
+
topic?: string | null;
|
|
117
|
+
}
|
|
118
|
+
export interface NotificationListParams extends CursorPageParams {
|
|
119
|
+
/**
|
|
120
|
+
* Cursor for fetching the previous page
|
|
121
|
+
*/
|
|
122
|
+
before?: string;
|
|
123
|
+
/**
|
|
124
|
+
* Filter by created after (ISO 8601 datetime)
|
|
125
|
+
*/
|
|
126
|
+
created_after?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Filter by created before (ISO 8601 datetime)
|
|
129
|
+
*/
|
|
130
|
+
created_before?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Filter by status
|
|
133
|
+
*/
|
|
134
|
+
status?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Filter by topic
|
|
137
|
+
*/
|
|
138
|
+
topic?: string;
|
|
139
|
+
}
|
|
140
|
+
export interface NotificationListDeliveriesParams extends CursorPageParams {
|
|
141
|
+
/**
|
|
142
|
+
* Cursor for fetching the previous page
|
|
143
|
+
*/
|
|
144
|
+
before?: string;
|
|
145
|
+
/**
|
|
146
|
+
* Filter by channel ID (UUID)
|
|
147
|
+
*/
|
|
148
|
+
channel_id?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Filter by created after (ISO 8601 datetime)
|
|
151
|
+
*/
|
|
152
|
+
created_after?: string;
|
|
153
|
+
/**
|
|
154
|
+
* Filter by created before (ISO 8601 datetime)
|
|
155
|
+
*/
|
|
156
|
+
created_before?: string;
|
|
157
|
+
/**
|
|
158
|
+
* Filter by status (pending, sent, failed)
|
|
159
|
+
*/
|
|
160
|
+
status?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Filter by topic name
|
|
163
|
+
*/
|
|
164
|
+
topic?: string;
|
|
165
|
+
}
|
|
166
|
+
export declare namespace Notifications {
|
|
167
|
+
export { type Notification as Notification, type NotificationsCursorPage as NotificationsCursorPage, type NotificationListParams as NotificationListParams, type NotificationListDeliveriesParams as NotificationListDeliveriesParams, };
|
|
168
|
+
}
|
|
169
|
+
export { type DeliveriesCursorPage };
|
|
170
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/resources/notifications.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,aAAa;OAClB,EAAE,oBAAoB,EAAE;OACxB,KAAK,QAAQ;OACb,EAAE,UAAU,EAAE;OACd,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE;OAClD,EAAE,cAAc,EAAE;AAGzB,qBAAa,aAAc,SAAQ,WAAW;IAC5C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC;IAIxE;;;;;;;;;;;;;OAaG;IACH,IAAI,CACF,KAAK,GAAE,sBAAsB,GAAG,IAAI,GAAG,SAAc,EACrD,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,uBAAuB,EAAE,YAAY,CAAC;IAIrD;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,gCAAgC,GAAG,IAAI,GAAG,SAAc,EAC/D,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,oBAAoB,EAAE,aAAa,CAAC,QAAQ,CAAC;CAO7D;AAED,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAE1D;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE3C;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;OAEG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gCAAiC,SAAQ,gBAAgB;IACxE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,OAAO,EACL,KAAK,YAAY,IAAI,YAAY,EACjC,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,gCAAgC,IAAI,gCAAgC,GAC1E,CAAC;CACH;AAED,OAAO,EAAE,KAAK,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Notifications = void 0;
|
|
5
|
+
const resource_1 = require("../core/resource.js");
|
|
6
|
+
const pagination_1 = require("../core/pagination.js");
|
|
7
|
+
const path_1 = require("../internal/utils/path.js");
|
|
8
|
+
class Notifications extends resource_1.APIResource {
|
|
9
|
+
/**
|
|
10
|
+
* Retrieve a single notification by ID, including the recipient, actor, and all
|
|
11
|
+
* delivery attempts.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* const notification = await client.notifications.retrieve(
|
|
16
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
retrieve(id, options) {
|
|
21
|
+
return this._client.get((0, path_1.path) `/notifications/${id}`, options);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Retrieve a paginated list of all notifications in your project.
|
|
25
|
+
*
|
|
26
|
+
* A notification represents a message sent to a single recipient through a
|
|
27
|
+
* notiflow run. Each notification can have multiple deliveries (one per channel).
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* // Automatically fetches more pages as needed.
|
|
32
|
+
* for await (const notification of client.notifications.list()) {
|
|
33
|
+
* // ...
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
list(query = {}, options) {
|
|
38
|
+
return this._client.getAPIList('/notifications', (pagination_1.CursorPage), { query, ...options });
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Retrieve all delivery attempts for a specific notification.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* // Automatically fetches more pages as needed.
|
|
46
|
+
* for await (const delivery of client.notifications.listDeliveries(
|
|
47
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
48
|
+
* )) {
|
|
49
|
+
* // ...
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
listDeliveries(notificationID, query = {}, options) {
|
|
54
|
+
return this._client.getAPIList((0, path_1.path) `/notifications/${notificationID}/deliveries`, (pagination_1.CursorPage), { query, ...options });
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.Notifications = Notifications;
|
|
58
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/resources/notifications.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAK/C,sDAAoF;AAEpF,oDAA8C;AAE9C,MAAa,aAAc,SAAQ,sBAAW;IAC5C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,CACF,QAAmD,EAAE,EACrD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAA,uBAAwB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACpG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,cAAsB,EACtB,QAA6D,EAAE,EAC/D,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC5B,IAAA,WAAI,EAAA,kBAAkB,cAAc,aAAa,EACjD,CAAA,uBAAkC,CAAA,EAClC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CACtB,CAAC;IACJ,CAAC;CACF;AA7DD,sCA6DC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
import { APIResource } from "../core/resource.mjs";
|
|
3
|
+
import { CursorPage } from "../core/pagination.mjs";
|
|
4
|
+
import { path } from "../internal/utils/path.mjs";
|
|
5
|
+
export class Notifications extends APIResource {
|
|
6
|
+
/**
|
|
7
|
+
* Retrieve a single notification by ID, including the recipient, actor, and all
|
|
8
|
+
* delivery attempts.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const notification = await client.notifications.retrieve(
|
|
13
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
14
|
+
* );
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
retrieve(id, options) {
|
|
18
|
+
return this._client.get(path `/notifications/${id}`, options);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Retrieve a paginated list of all notifications in your project.
|
|
22
|
+
*
|
|
23
|
+
* A notification represents a message sent to a single recipient through a
|
|
24
|
+
* notiflow run. Each notification can have multiple deliveries (one per channel).
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* // Automatically fetches more pages as needed.
|
|
29
|
+
* for await (const notification of client.notifications.list()) {
|
|
30
|
+
* // ...
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
list(query = {}, options) {
|
|
35
|
+
return this._client.getAPIList('/notifications', (CursorPage), { query, ...options });
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Retrieve all delivery attempts for a specific notification.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* // Automatically fetches more pages as needed.
|
|
43
|
+
* for await (const delivery of client.notifications.listDeliveries(
|
|
44
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
45
|
+
* )) {
|
|
46
|
+
* // ...
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
listDeliveries(notificationID, query = {}, options) {
|
|
51
|
+
return this._client.getAPIList(path `/notifications/${notificationID}/deliveries`, (CursorPage), { query, ...options });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=notifications.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.mjs","sourceRoot":"","sources":["../src/resources/notifications.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAKf,EAAE,UAAU,EAAsC;OAElD,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,CACF,QAAmD,EAAE,EACrD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAA,UAAwB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACpG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CACZ,cAAsB,EACtB,QAA6D,EAAE,EAC/D,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAC5B,IAAI,CAAA,kBAAkB,cAAc,aAAa,EACjD,CAAA,UAAkC,CAAA,EAClC,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { APIResource } from "../core/resource.mjs";
|
|
2
|
+
import { APIPromise } from "../core/api-promise.mjs";
|
|
3
|
+
import { RequestOptions } from "../internal/request-options.mjs";
|
|
4
|
+
export declare class NotiflowsResource extends APIResource {
|
|
5
|
+
/**
|
|
6
|
+
* Execute a notiflow to send notifications to one or more recipients.
|
|
7
|
+
*
|
|
8
|
+
* You must provide either `recipients` (direct targeting) or `topic` (pub/sub
|
|
9
|
+
* targeting), but not both.
|
|
10
|
+
*
|
|
11
|
+
* **Direct targeting (`recipients`):** Specify exactly which users should receive
|
|
12
|
+
* the notification. Users are identified by their `external_id`. If a user doesn't
|
|
13
|
+
* exist, they will be created automatically with the provided attributes.
|
|
14
|
+
*
|
|
15
|
+
* **Topic targeting (`topic`):** Send to all users subscribed to the specified
|
|
16
|
+
* topic. Useful for broadcast scenarios.
|
|
17
|
+
*
|
|
18
|
+
* **Template variables:** The `data` object is passed to notification templates.
|
|
19
|
+
* Access variables using Liquid syntax: `{{ data.variable_name }}`
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const response = await client.notiflows.run(
|
|
24
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
run(notiflowID: string, body: NotiflowRunParams, options?: RequestOptions): APIPromise<NotiflowRunResponse>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Response after successfully running a notiflow
|
|
32
|
+
*/
|
|
33
|
+
export interface NotiflowRunResponse {
|
|
34
|
+
/**
|
|
35
|
+
* ID of the notiflow run. Use this to query notifications created by this run.
|
|
36
|
+
*/
|
|
37
|
+
notiflow_run_id: string;
|
|
38
|
+
}
|
|
39
|
+
export interface NotiflowRunParams {
|
|
40
|
+
/**
|
|
41
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
42
|
+
*/
|
|
43
|
+
actor?: NotiflowRunParams.Actor;
|
|
44
|
+
/**
|
|
45
|
+
* Template variables. Accessible in notification templates as `data.*`.
|
|
46
|
+
*/
|
|
47
|
+
data?: unknown;
|
|
48
|
+
/**
|
|
49
|
+
* List of recipients. Each recipient must have an `external_id`. Users are
|
|
50
|
+
* auto-created if they don't exist.
|
|
51
|
+
*/
|
|
52
|
+
recipients?: Array<NotiflowRunParams.Recipient>;
|
|
53
|
+
/**
|
|
54
|
+
* Topic name for pub/sub targeting. Cannot be used with `recipients`.
|
|
55
|
+
*/
|
|
56
|
+
topic?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare namespace NotiflowRunParams {
|
|
59
|
+
/**
|
|
60
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
61
|
+
*/
|
|
62
|
+
interface Actor {
|
|
63
|
+
/**
|
|
64
|
+
* Your system's identifier for the actor (required)
|
|
65
|
+
*/
|
|
66
|
+
external_id: string;
|
|
67
|
+
avatar?: string;
|
|
68
|
+
custom_fields?: unknown;
|
|
69
|
+
email?: string;
|
|
70
|
+
first_name?: string;
|
|
71
|
+
last_name?: string;
|
|
72
|
+
locale?: string;
|
|
73
|
+
phone?: string;
|
|
74
|
+
timezone?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Recipient specification for running a notiflow. Users are auto-created if they
|
|
78
|
+
* don't exist.
|
|
79
|
+
*/
|
|
80
|
+
interface Recipient {
|
|
81
|
+
/**
|
|
82
|
+
* Your system's unique identifier for this user (required)
|
|
83
|
+
*/
|
|
84
|
+
external_id: string;
|
|
85
|
+
/**
|
|
86
|
+
* Avatar URL
|
|
87
|
+
*/
|
|
88
|
+
avatar?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Custom attributes
|
|
91
|
+
*/
|
|
92
|
+
custom_fields?: unknown;
|
|
93
|
+
/**
|
|
94
|
+
* Email address (used if user is auto-created)
|
|
95
|
+
*/
|
|
96
|
+
email?: string;
|
|
97
|
+
/**
|
|
98
|
+
* First name
|
|
99
|
+
*/
|
|
100
|
+
first_name?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Last name
|
|
103
|
+
*/
|
|
104
|
+
last_name?: string;
|
|
105
|
+
/**
|
|
106
|
+
* BCP 47 locale
|
|
107
|
+
*/
|
|
108
|
+
locale?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Phone number in E.164 format
|
|
111
|
+
*/
|
|
112
|
+
phone?: string;
|
|
113
|
+
/**
|
|
114
|
+
* IANA timezone
|
|
115
|
+
*/
|
|
116
|
+
timezone?: string;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export declare namespace NotiflowsResource {
|
|
120
|
+
export { type NotiflowRunResponse as NotiflowRunResponse, type NotiflowRunParams as NotiflowRunParams };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=notiflows.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notiflows.d.mts","sourceRoot":"","sources":["../src/resources/notiflows.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAGzB,qBAAa,iBAAkB,SAAQ,WAAW;IAChD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CACD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,mBAAmB,CAAC;CAGnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAEhC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yBAAiB,iBAAiB,CAAC;IACjC;;OAEG;IACH,UAAiB,KAAK;QACpB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;QAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAED;;;OAGG;IACH,UAAiB,SAAS;QACxB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,OAAO,EAAE,KAAK,mBAAmB,IAAI,mBAAmB,EAAE,KAAK,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;CACzG"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { APIResource } from "../core/resource.js";
|
|
2
|
+
import { APIPromise } from "../core/api-promise.js";
|
|
3
|
+
import { RequestOptions } from "../internal/request-options.js";
|
|
4
|
+
export declare class NotiflowsResource extends APIResource {
|
|
5
|
+
/**
|
|
6
|
+
* Execute a notiflow to send notifications to one or more recipients.
|
|
7
|
+
*
|
|
8
|
+
* You must provide either `recipients` (direct targeting) or `topic` (pub/sub
|
|
9
|
+
* targeting), but not both.
|
|
10
|
+
*
|
|
11
|
+
* **Direct targeting (`recipients`):** Specify exactly which users should receive
|
|
12
|
+
* the notification. Users are identified by their `external_id`. If a user doesn't
|
|
13
|
+
* exist, they will be created automatically with the provided attributes.
|
|
14
|
+
*
|
|
15
|
+
* **Topic targeting (`topic`):** Send to all users subscribed to the specified
|
|
16
|
+
* topic. Useful for broadcast scenarios.
|
|
17
|
+
*
|
|
18
|
+
* **Template variables:** The `data` object is passed to notification templates.
|
|
19
|
+
* Access variables using Liquid syntax: `{{ data.variable_name }}`
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const response = await client.notiflows.run(
|
|
24
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
run(notiflowID: string, body: NotiflowRunParams, options?: RequestOptions): APIPromise<NotiflowRunResponse>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Response after successfully running a notiflow
|
|
32
|
+
*/
|
|
33
|
+
export interface NotiflowRunResponse {
|
|
34
|
+
/**
|
|
35
|
+
* ID of the notiflow run. Use this to query notifications created by this run.
|
|
36
|
+
*/
|
|
37
|
+
notiflow_run_id: string;
|
|
38
|
+
}
|
|
39
|
+
export interface NotiflowRunParams {
|
|
40
|
+
/**
|
|
41
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
42
|
+
*/
|
|
43
|
+
actor?: NotiflowRunParams.Actor;
|
|
44
|
+
/**
|
|
45
|
+
* Template variables. Accessible in notification templates as `data.*`.
|
|
46
|
+
*/
|
|
47
|
+
data?: unknown;
|
|
48
|
+
/**
|
|
49
|
+
* List of recipients. Each recipient must have an `external_id`. Users are
|
|
50
|
+
* auto-created if they don't exist.
|
|
51
|
+
*/
|
|
52
|
+
recipients?: Array<NotiflowRunParams.Recipient>;
|
|
53
|
+
/**
|
|
54
|
+
* Topic name for pub/sub targeting. Cannot be used with `recipients`.
|
|
55
|
+
*/
|
|
56
|
+
topic?: string;
|
|
57
|
+
}
|
|
58
|
+
export declare namespace NotiflowRunParams {
|
|
59
|
+
/**
|
|
60
|
+
* Actor (triggering user) specification. Accessible in templates as `actor.*`.
|
|
61
|
+
*/
|
|
62
|
+
interface Actor {
|
|
63
|
+
/**
|
|
64
|
+
* Your system's identifier for the actor (required)
|
|
65
|
+
*/
|
|
66
|
+
external_id: string;
|
|
67
|
+
avatar?: string;
|
|
68
|
+
custom_fields?: unknown;
|
|
69
|
+
email?: string;
|
|
70
|
+
first_name?: string;
|
|
71
|
+
last_name?: string;
|
|
72
|
+
locale?: string;
|
|
73
|
+
phone?: string;
|
|
74
|
+
timezone?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Recipient specification for running a notiflow. Users are auto-created if they
|
|
78
|
+
* don't exist.
|
|
79
|
+
*/
|
|
80
|
+
interface Recipient {
|
|
81
|
+
/**
|
|
82
|
+
* Your system's unique identifier for this user (required)
|
|
83
|
+
*/
|
|
84
|
+
external_id: string;
|
|
85
|
+
/**
|
|
86
|
+
* Avatar URL
|
|
87
|
+
*/
|
|
88
|
+
avatar?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Custom attributes
|
|
91
|
+
*/
|
|
92
|
+
custom_fields?: unknown;
|
|
93
|
+
/**
|
|
94
|
+
* Email address (used if user is auto-created)
|
|
95
|
+
*/
|
|
96
|
+
email?: string;
|
|
97
|
+
/**
|
|
98
|
+
* First name
|
|
99
|
+
*/
|
|
100
|
+
first_name?: string;
|
|
101
|
+
/**
|
|
102
|
+
* Last name
|
|
103
|
+
*/
|
|
104
|
+
last_name?: string;
|
|
105
|
+
/**
|
|
106
|
+
* BCP 47 locale
|
|
107
|
+
*/
|
|
108
|
+
locale?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Phone number in E.164 format
|
|
111
|
+
*/
|
|
112
|
+
phone?: string;
|
|
113
|
+
/**
|
|
114
|
+
* IANA timezone
|
|
115
|
+
*/
|
|
116
|
+
timezone?: string;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export declare namespace NotiflowsResource {
|
|
120
|
+
export { type NotiflowRunResponse as NotiflowRunResponse, type NotiflowRunParams as NotiflowRunParams };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=notiflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notiflows.d.ts","sourceRoot":"","sources":["../src/resources/notiflows.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAGzB,qBAAa,iBAAkB,SAAQ,WAAW;IAChD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CACD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,mBAAmB,CAAC;CAGnC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC;IAEhC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAEhD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,yBAAiB,iBAAiB,CAAC;IACjC;;OAEG;IACH,UAAiB,KAAK;QACpB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;QAEpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;IAED;;;OAGG;IACH,UAAiB,SAAS;QACxB;;WAEG;QACH,WAAW,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,CAAC,OAAO,WAAW,iBAAiB,CAAC;IACzC,OAAO,EAAE,KAAK,mBAAmB,IAAI,mBAAmB,EAAE,KAAK,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;CACzG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NotiflowsResource = void 0;
|
|
5
|
+
const resource_1 = require("../core/resource.js");
|
|
6
|
+
const path_1 = require("../internal/utils/path.js");
|
|
7
|
+
class NotiflowsResource extends resource_1.APIResource {
|
|
8
|
+
/**
|
|
9
|
+
* Execute a notiflow to send notifications to one or more recipients.
|
|
10
|
+
*
|
|
11
|
+
* You must provide either `recipients` (direct targeting) or `topic` (pub/sub
|
|
12
|
+
* targeting), but not both.
|
|
13
|
+
*
|
|
14
|
+
* **Direct targeting (`recipients`):** Specify exactly which users should receive
|
|
15
|
+
* the notification. Users are identified by their `external_id`. If a user doesn't
|
|
16
|
+
* exist, they will be created automatically with the provided attributes.
|
|
17
|
+
*
|
|
18
|
+
* **Topic targeting (`topic`):** Send to all users subscribed to the specified
|
|
19
|
+
* topic. Useful for broadcast scenarios.
|
|
20
|
+
*
|
|
21
|
+
* **Template variables:** The `data` object is passed to notification templates.
|
|
22
|
+
* Access variables using Liquid syntax: `{{ data.variable_name }}`
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const response = await client.notiflows.run(
|
|
27
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
28
|
+
* );
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
run(notiflowID, body, options) {
|
|
32
|
+
return this._client.post((0, path_1.path) `/notiflows/${notiflowID}/run`, { body, ...options });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.NotiflowsResource = NotiflowsResource;
|
|
36
|
+
//# sourceMappingURL=notiflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notiflows.js","sourceRoot":"","sources":["../src/resources/notiflows.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAG/C,oDAA8C;AAE9C,MAAa,iBAAkB,SAAQ,sBAAW;IAChD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CACD,UAAkB,EAClB,IAAuB,EACvB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,WAAI,EAAA,cAAc,UAAU,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;CACF;AA/BD,8CA+BC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
import { APIResource } from "../core/resource.mjs";
|
|
3
|
+
import { path } from "../internal/utils/path.mjs";
|
|
4
|
+
export class NotiflowsResource extends APIResource {
|
|
5
|
+
/**
|
|
6
|
+
* Execute a notiflow to send notifications to one or more recipients.
|
|
7
|
+
*
|
|
8
|
+
* You must provide either `recipients` (direct targeting) or `topic` (pub/sub
|
|
9
|
+
* targeting), but not both.
|
|
10
|
+
*
|
|
11
|
+
* **Direct targeting (`recipients`):** Specify exactly which users should receive
|
|
12
|
+
* the notification. Users are identified by their `external_id`. If a user doesn't
|
|
13
|
+
* exist, they will be created automatically with the provided attributes.
|
|
14
|
+
*
|
|
15
|
+
* **Topic targeting (`topic`):** Send to all users subscribed to the specified
|
|
16
|
+
* topic. Useful for broadcast scenarios.
|
|
17
|
+
*
|
|
18
|
+
* **Template variables:** The `data` object is passed to notification templates.
|
|
19
|
+
* Access variables using Liquid syntax: `{{ data.variable_name }}`
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* const response = await client.notiflows.run(
|
|
24
|
+
* '01HQXYZ123456789ABCDEFGHIJ',
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
run(notiflowID, body, options) {
|
|
29
|
+
return this._client.post(path `/notiflows/${notiflowID}/run`, { body, ...options });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=notiflows.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notiflows.mjs","sourceRoot":"","sources":["../src/resources/notiflows.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAGf,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CACD,UAAkB,EAClB,IAAuB,EACvB,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,cAAc,UAAU,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;CACF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Subscriptions, type BulkOperationResponse, type BulkSubscribeRequest, type SubscriptionListParams, type SubscriptionSubscribeBulkParams, type SubscriptionUnsubscribeBulkParams, } from "./subscriptions.mjs";
|
|
2
|
+
export { Topics, type Topic, type TopicListParams, type TopicsCursorPage } from "./topics.mjs";
|
|
3
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/resources/topics/index.ts"],"names":[],"mappings":"OAEO,EACL,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,GACvC;OACM,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { Subscriptions, type BulkOperationResponse, type BulkSubscribeRequest, type SubscriptionListParams, type SubscriptionSubscribeBulkParams, type SubscriptionUnsubscribeBulkParams, } from "./subscriptions.js";
|
|
2
|
+
export { Topics, type Topic, type TopicListParams, type TopicsCursorPage } from "./topics.js";
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/topics/index.ts"],"names":[],"mappings":"OAEO,EACL,aAAa,EACb,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,GACvC;OACM,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Topics = exports.Subscriptions = void 0;
|
|
5
|
+
var subscriptions_1 = require("./subscriptions.js");
|
|
6
|
+
Object.defineProperty(exports, "Subscriptions", { enumerable: true, get: function () { return subscriptions_1.Subscriptions; } });
|
|
7
|
+
var topics_1 = require("./topics.js");
|
|
8
|
+
Object.defineProperty(exports, "Topics", { enumerable: true, get: function () { return topics_1.Topics; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/topics/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,oDAOyB;AANvB,8GAAA,aAAa,OAAA;AAOf,sCAA2F;AAAlF,gGAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/resources/topics/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EACL,aAAa,GAMd;OACM,EAAE,MAAM,EAA2D"}
|