@wspc/cli 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +8 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/spec/openapi.json +2756 -4046
package/dist/cli.js
CHANGED
|
@@ -1410,9 +1410,9 @@ function createConsistencyFetch(opts) {
|
|
|
1410
1410
|
}
|
|
1411
1411
|
|
|
1412
1412
|
// src/version.ts
|
|
1413
|
-
var VERSION = "0.0.
|
|
1414
|
-
var SPEC_SHA = "
|
|
1415
|
-
var SPEC_FETCHED_AT = "2026-06-
|
|
1413
|
+
var VERSION = "0.0.22";
|
|
1414
|
+
var SPEC_SHA = "a2dfa511";
|
|
1415
|
+
var SPEC_FETCHED_AT = "2026-06-20T14:16:47.131Z";
|
|
1416
1416
|
var API_BASE = "https://api.wspc.ai";
|
|
1417
1417
|
|
|
1418
1418
|
// src/index.ts
|
|
@@ -2470,7 +2470,7 @@ function parseAttendee(input) {
|
|
|
2470
2470
|
var eventCreateCommand = new Command16("add").description("Schedule a calendar event").argument("<title>", "title").option("--description <value>", "Free-form notes about the event (agenda, dial-in instructions, etc.). Markdown formatted (CommonMark + GFM tables, strikethrough, task lists); stored verbatim. Invitation emails include the raw source \u2014 most email clients display it as plain text.").option("--start <value>", "Accepts ISO 8601 datetime with offset (e.g. `2026-06-01T12:30:00+08:00`) for timed events, or ISO date-only (e.g. `2026-06-01`) for all-day. The `wspc` CLI additionally accepts natural-language phrases (`tomorrow 12:30pm`, `next Monday 9am`) and resolves them to ISO before sending; the server itself only accepts ISO. All-day uses RFC 5545 exclusive end: a one-day event on 6/1 is `start=2026-06-01, end=2026-06-02`; both endpoints must be the same type.").option("--end <value>", "Accepts ISO 8601 datetime with offset (e.g. `2026-06-01T12:30:00+08:00`) for timed events, or ISO date-only (e.g. `2026-06-01`) for all-day. The `wspc` CLI additionally accepts natural-language phrases (`tomorrow 12:30pm`, `next Monday 9am`) and resolves them to ISO before sending; the server itself only accepts ISO. All-day uses RFC 5545 exclusive end: a one-day event on 6/1 is `start=2026-06-01, end=2026-06-02`; both endpoints must be the same type.").option("-l, --location <value>", "Free-text location \u2014 physical address, room, or short note. Separate from `url` (meeting link).").option("-u, --url <value>", "Optional meeting link (Zoom / Meet / etc.). Kept separate from `location` so calendar clients can render it as a join action.").option("--status <value>", "Lifecycle status. `confirmed`: the event will happen (default). `tentative`: organizer has not finalized; still visible in lists. `cancelled`: the event was called off but the record is kept so attendees can be notified and history audited; distinct from soft-delete (DELETE `/calendar/events/{id}`) which hides the event from default list responses.").option("--attendee <value>", "Up to 50 unique attendees (deduped case-insensitively by email). If non-empty, each attendee receives an invitation email with an `.ics` REQUEST attachment as a side effect of creation.", (val, memo) => {
|
|
2471
2471
|
memo.push(val);
|
|
2472
2472
|
return memo;
|
|
2473
|
-
}, []).option("--all-day", "all_day").option("--tz <zone>", "IANA timezone for relative time parsing").action(async (title, opts) => {
|
|
2473
|
+
}, []).option("--idempotency-key <value>", "idempotency_key").option("--all-day", "all_day").option("--tz <zone>", "IANA timezone for relative time parsing").action(async (title, opts) => {
|
|
2474
2474
|
const zone = resolveTimezone(opts.tz);
|
|
2475
2475
|
let startValue;
|
|
2476
2476
|
if (opts.start !== void 0) {
|
|
@@ -2501,7 +2501,8 @@ var eventCreateCommand = new Command16("add").description("Schedule a calendar e
|
|
|
2501
2501
|
location: opts.location,
|
|
2502
2502
|
url: opts.url,
|
|
2503
2503
|
status: opts.status,
|
|
2504
|
-
attendees
|
|
2504
|
+
attendees,
|
|
2505
|
+
idempotency_key: opts.idempotencyKey
|
|
2505
2506
|
}
|
|
2506
2507
|
});
|
|
2507
2508
|
if (result.error || !result.response?.ok) {
|
|
@@ -3207,7 +3208,7 @@ function parseJsonField(raw, flag) {
|
|
|
3207
3208
|
}
|
|
3208
3209
|
|
|
3209
3210
|
// src/generated/cli/todo/add.ts
|
|
3210
|
-
var todoCreateCommand = new Command45("add").description("Create a todo").argument("<title>", "title").option("-p, --project <value>", "Project id to assign this todo to. It must be an active project in the caller's organization.").option("--description <value>", "Free-form details about the todo. Fully supports GFM Markdown (tables, strikethrough, task lists). Stored verbatim; client applications are responsible for rendering. Optional. Passing `null` is strictly rejected.").option("--parent-id <value>", "Parent todo ID (`tod_<ULID>`) to attach this todo as a child under another todo. Omit or pass `null` to create a root-level todo. Nesting is limited to one level; attempting to set a child todo as a parent will trigger `PARENT_IS_CHILD`. To make a subtask appear on every occurrence of a recurring rule, set this to that rule's template todo id (the template id returned when the rule is created); the server re-materializes future occurrences so each carries the subtask.").option("--status <value>", "Initial status of the todo. Omit to default to `open`. Allowed values: `open`, `in_progress`, `done`, `cancelled`.").option("--due-at <value>", 'Optional calendar due date in ISO date-only format (`YYYY-MM-DD`). Stored without timezone offsets to represent the same local calendar day globally. Pass `""` or omit the field to skip setting a due date. Passing `null` is strictly rejected.').option("--type-id <value>", "Type id this todo belongs to. Omit to use the project's default type. When project_id is also supplied, the type must belong to the same project. New server-generated type ids use typ_<ULID>; legacy ids remain accepted.").option("--custom-fields <value>", "Custom field values keyed by the field's immutable `key` (not the human `label`). Each value must match the declared field type: string fields require string values, and string_array fields require string arrays. Providing a key that is not declared on the resolved todo type is strictly rejected with `UNDECLARED_FIELD`. Missing required fields that lack a default value are rejected with `FIELD_REQUIRED`. Defaults declared on the type are auto-applied at create time.").action(async (title, opts) => {
|
|
3211
|
+
var todoCreateCommand = new Command45("add").description("Create a todo").argument("<title>", "title").option("-p, --project <value>", "Project id to assign this todo to. It must be an active project in the caller's organization.").option("--description <value>", "Free-form details about the todo. Fully supports GFM Markdown (tables, strikethrough, task lists). Stored verbatim; client applications are responsible for rendering. Optional. Passing `null` is strictly rejected.").option("--parent-id <value>", "Parent todo ID (`tod_<ULID>`) to attach this todo as a child under another todo. Omit or pass `null` to create a root-level todo. Nesting is limited to one level; attempting to set a child todo as a parent will trigger `PARENT_IS_CHILD`. To make a subtask appear on every occurrence of a recurring rule, set this to that rule's template todo id (the template id returned when the rule is created); the server re-materializes future occurrences so each carries the subtask.").option("--status <value>", "Initial status of the todo. Omit to default to `open`. Allowed values: `open`, `in_progress`, `done`, `cancelled`.").option("--due-at <value>", 'Optional calendar due date in ISO date-only format (`YYYY-MM-DD`). Stored without timezone offsets to represent the same local calendar day globally. Pass `""` or omit the field to skip setting a due date. Passing `null` is strictly rejected.').option("--idempotency-key <value>", "idempotency_key").option("--type-id <value>", "Type id this todo belongs to. Omit to use the project's default type. When project_id is also supplied, the type must belong to the same project. New server-generated type ids use typ_<ULID>; legacy ids remain accepted.").option("--custom-fields <value>", "Custom field values keyed by the field's immutable `key` (not the human `label`). Each value must match the declared field type: string fields require string values, and string_array fields require string arrays. Providing a key that is not declared on the resolved todo type is strictly rejected with `UNDECLARED_FIELD`. Missing required fields that lack a default value are rejected with `FIELD_REQUIRED`. Defaults declared on the type are auto-applied at create time.").action(async (title, opts) => {
|
|
3211
3212
|
const client2 = await loadSdkClient();
|
|
3212
3213
|
const result = await todoCreate({
|
|
3213
3214
|
client: client2._rawClient,
|
|
@@ -3218,6 +3219,7 @@ var todoCreateCommand = new Command45("add").description("Create a todo").argume
|
|
|
3218
3219
|
parent_id: opts.parentId,
|
|
3219
3220
|
status: opts.status,
|
|
3220
3221
|
due_at: opts.dueAt,
|
|
3222
|
+
idempotency_key: opts.idempotencyKey,
|
|
3221
3223
|
type_id: opts.typeId,
|
|
3222
3224
|
custom_fields: parseJsonField(opts.customFields, "custom-fields")
|
|
3223
3225
|
}
|