@praeko/cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/README.md +2 -2
  3. package/dist/chunks/{adaptadores-X3NUBMLT.mjs → adaptadores-73I3A475.mjs} +5 -5
  4. package/dist/chunks/{buffer-5TUDOBVN.mjs → buffer-7UXG3MU4.mjs} +5 -5
  5. package/dist/chunks/{chunk-QDZLRBTP.mjs → chunk-FZ2EWUHA.mjs} +133 -57
  6. package/dist/chunks/{chunk-SAHLBARV.mjs → chunk-K5RD3QB7.mjs} +12 -12
  7. package/dist/chunks/{chunk-Z325UM27.mjs → chunk-SL4UDIFM.mjs} +1 -1
  8. package/dist/chunks/{chunk-IZEX746E.mjs → chunk-SPELUAPP.mjs} +15 -15
  9. package/dist/chunks/chunk-SSYEOFS5.mjs +56 -0
  10. package/dist/chunks/{chunk-LLXYUCTT.mjs → chunk-TDQGKU7I.mjs} +9 -8
  11. package/dist/chunks/{chunk-UK3UKRPR.mjs → chunk-V3GB2IUZ.mjs} +20 -3
  12. package/dist/chunks/{instagram-GNY73ESY.mjs → instagram-3P4ROM45.mjs} +1 -1
  13. package/dist/chunks/{instagram-meta-COY6BTNX.mjs → instagram-meta-ANEWEJV7.mjs} +2 -1
  14. package/dist/chunks/{local-EUJHQ76T.mjs → local-QWOY7WI5.mjs} +3 -3
  15. package/dist/chunks/{registro-FL2CVMYM.mjs → registro-2EE55WTS.mjs} +1 -1
  16. package/dist/chunks/{remoto-OAB5Y2MS.mjs → remoto-HPELHT4F.mjs} +2 -2
  17. package/dist/chunks/{tiktok-QOUHOWDU.mjs → tiktok-DVG5JNJE.mjs} +1 -1
  18. package/dist/chunks/{tiktok-api-36DV2H43.mjs → tiktok-api-2CYJNS73.mjs} +1 -1
  19. package/dist/chunks/{youtube-RZ4XTUZW.mjs → youtube-EZL4SNMO.mjs} +4 -2
  20. package/dist/chunks/{youtube-analytics-3KIW2ZIW.mjs → youtube-analytics-74ZDYCY6.mjs} +2 -2
  21. package/dist/chunks/{youtube-api-Z2RP5D2V.mjs → youtube-api-QVEOU2L7.mjs} +3 -1
  22. package/dist/chunks/{youtube-comunidade-OAK5GGK4.mjs → youtube-comunidade-GJBG2XR7.mjs} +2 -2
  23. package/dist/praeko.mjs +851 -8
  24. package/package.json +5 -5
  25. package/dist/arauto.mjs +0 -11
  26. package/dist/chunks/chunk-6YARHJZ2.mjs +0 -56
  27. package/dist/chunks/chunk-XQO6MI7C.mjs +0 -851
@@ -1,17 +1,17 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import {
3
3
  carregarTodos
4
- } from "./chunk-6YARHJZ2.mjs";
4
+ } from "./chunk-SSYEOFS5.mjs";
5
5
  import {
6
6
  PROVEDORES,
7
7
  validarPedido
8
- } from "./chunk-Z325UM27.mjs";
8
+ } from "./chunk-SL4UDIFM.mjs";
9
9
  import {
10
10
  __export,
11
11
  __glob
12
12
  } from "./chunk-LCFK6X55.mjs";
13
13
 
14
- // ../core/src/adaptadores/local.mjs
14
+ // ../core/src/adaptadores/local.ts
15
15
  var local_exports = {};
16
16
  __export(local_exports, {
17
17
  MODO_PADRAO: () => MODO_PADRAO,
@@ -19,12 +19,12 @@ __export(local_exports, {
19
19
  estadoDe: () => estadoDe
20
20
  });
21
21
 
22
- // ../core/src/fila.mjs
22
+ // ../core/src/fila.ts
23
23
  import { existsSync as existsSync2, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
24
24
  import { dirname } from "node:path";
25
25
  import { randomBytes } from "node:crypto";
26
26
 
27
- // ../core/src/estado.mjs
27
+ // ../core/src/estado.ts
28
28
  import { existsSync } from "node:fs";
29
29
  import { join } from "node:path";
30
30
  var PASTA_ESTADO = ".praeko";
@@ -38,7 +38,7 @@ function caminhoLeitura(raiz, ...nome) {
38
38
  return existsSync(velho) ? velho : novo;
39
39
  }
40
40
 
41
- // ../core/src/fila.mjs
41
+ // ../core/src/fila.ts
42
42
  var MAX_TENTATIVAS = 3;
43
43
  var arquivoFila = (raiz) => caminhoEstado(raiz, "fila.json");
44
44
  function lerFila(raiz) {
@@ -142,23 +142,23 @@ function plistLaunchd({ rotulo = "br.praeko.fila", node, praeko, arauto, cwd, mi
142
142
  `;
143
143
  }
144
144
 
145
- // import("./adaptadores/**/*.mjs") in ../core/src/publicador.mjs
146
- var globImport_adaptadores_mjs = __glob({
147
- "./adaptadores/buffer.mjs": () => import("./buffer-5TUDOBVN.mjs"),
148
- "./adaptadores/index.mjs": () => import("./adaptadores-X3NUBMLT.mjs"),
149
- "./adaptadores/local.mjs": () => import("./local-EUJHQ76T.mjs"),
150
- "./adaptadores/remoto.mjs": () => import("./remoto-OAB5Y2MS.mjs")
145
+ // import("./adaptadores/**/*.ts") in ../core/src/publicador.ts
146
+ var globImport_adaptadores_ts = __glob({
147
+ "./adaptadores/buffer.ts": () => import("./buffer-7UXG3MU4.mjs"),
148
+ "./adaptadores/index.ts": () => import("./adaptadores-73I3A475.mjs"),
149
+ "./adaptadores/local.ts": () => import("./local-QWOY7WI5.mjs"),
150
+ "./adaptadores/remoto.ts": () => import("./remoto-HPELHT4F.mjs")
151
151
  });
152
152
 
153
- // ../core/src/publicador.mjs
153
+ // ../core/src/publicador.ts
154
154
  async function criarPublicador({ config, provedor, ctx } = {}) {
155
155
  const nome = provedor || config?.provedor || "buffer";
156
156
  if (!PROVEDORES.includes(nome)) throw new Error(`provedor "${nome}" desconhecido (use ${PROVEDORES.join(", ")})`);
157
- const mod = await globImport_adaptadores_mjs(`./adaptadores/${nome}.mjs`);
157
+ const mod = await globImport_adaptadores_ts(`./adaptadores/${nome}.ts`);
158
158
  return mod.criar({ config, ctx });
159
159
  }
160
160
 
161
- // ../core/src/adaptadores/local.mjs
161
+ // ../core/src/adaptadores/local.ts
162
162
  import { randomBytes as randomBytes2 } from "node:crypto";
163
163
  var MODO_PADRAO = { youtube: "privado", tiktok: "rascunho", instagram: "agora" };
164
164
  function estadoDe(it) {
@@ -0,0 +1,56 @@
1
+ import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
+ import {
3
+ __export,
4
+ __glob
5
+ } from "./chunk-LCFK6X55.mjs";
6
+
7
+ // ../core/src/provedores/registro.ts
8
+ var registro_exports = {};
9
+ __export(registro_exports, {
10
+ NOMES: () => NOMES,
11
+ carregar: () => carregar,
12
+ carregarTodos: () => carregarTodos
13
+ });
14
+
15
+ // import("./**/*.ts") in ../core/src/provedores/registro.ts
16
+ var globImport_ts = __glob({
17
+ "./instagram-meta.ts": () => import("./instagram-meta-ANEWEJV7.mjs"),
18
+ "./instagram.ts": () => import("./instagram-3P4ROM45.mjs"),
19
+ "./registro.ts": () => import("./registro-2EE55WTS.mjs"),
20
+ "./tiktok-api.ts": () => import("./tiktok-api-2CYJNS73.mjs"),
21
+ "./tiktok.ts": () => import("./tiktok-DVG5JNJE.mjs"),
22
+ "./youtube-analytics.ts": () => import("./youtube-analytics-74ZDYCY6.mjs"),
23
+ "./youtube-api.ts": () => import("./youtube-api-QVEOU2L7.mjs"),
24
+ "./youtube-comunidade.ts": () => import("./youtube-comunidade-GJBG2XR7.mjs"),
25
+ "./youtube.ts": () => import("./youtube-EZL4SNMO.mjs")
26
+ });
27
+
28
+ // ../core/src/provedores/registro.ts
29
+ var NOMES = ["youtube", "instagram", "tiktok"];
30
+ async function carregar(nome) {
31
+ if (!NOMES.includes(nome)) throw new Error(`provedor desconhecido: ${nome}`);
32
+ try {
33
+ return await globImport_ts(`./${nome}.ts`);
34
+ } catch (e) {
35
+ if (e.code === "ERR_MODULE_NOT_FOUND" && String(e.message).includes(`${nome}.ts`)) throw new Error(`provedor "${nome}" ainda n\xE3o foi escrito`);
36
+ throw e;
37
+ }
38
+ }
39
+ async function carregarTodos() {
40
+ const o = {};
41
+ for (const n of NOMES) {
42
+ try {
43
+ o[n] = await carregar(n);
44
+ } catch (e) {
45
+ if (!/ainda não foi escrito/.test(e.message)) throw e;
46
+ }
47
+ }
48
+ return o;
49
+ }
50
+
51
+ export {
52
+ NOMES,
53
+ carregar,
54
+ carregarTodos,
55
+ registro_exports
56
+ };
@@ -4,9 +4,9 @@ import {
4
4
  api,
5
5
  canalId,
6
6
  falha
7
- } from "./chunk-UK3UKRPR.mjs";
7
+ } from "./chunk-V3GB2IUZ.mjs";
8
8
 
9
- // ../core/src/provedores/youtube-comunidade.mjs
9
+ // ../core/src/provedores/youtube-comunidade.ts
10
10
  var lerJson = async (r) => {
11
11
  const t = await r.text();
12
12
  if (!r.ok) throw falha(r.status, t);
@@ -53,8 +53,9 @@ async function apagarVideo({ ctx, videoId }) {
53
53
  if (r.status < 200 || r.status > 299) throw Object.assign(new Error(`o YouTube recusou apagar o v\xEDdeo (HTTP ${r.status})`), { status: r.status });
54
54
  return { id: videoId, apagado: true };
55
55
  }
56
- async function editarVideo({ ctx, videoId, titulo, descricao, tags, simular = false }) {
57
- if (titulo === void 0 && descricao === void 0 && tags === void 0) throw new Error("nada para mudar: informe titulo, descricao ou tags");
56
+ async function editarVideo({ ctx, videoId, titulo, descricao, tags, categoriaId, simular = false }) {
57
+ if (titulo === void 0 && descricao === void 0 && tags === void 0 && categoriaId === void 0) throw new Error("nada para mudar: informe titulo, descricao, tags ou categoriaId");
58
+ if (categoriaId !== void 0 && !/^\d{1,3}$/.test(String(categoriaId))) throw new Error("categoriaId inv\xE1lido: n\xFAmero da categoria do YouTube (ex.: 28)");
58
59
  if (titulo !== void 0 && (!titulo.trim() || titulo.length > 100 || !semAngulos(titulo))) throw new Error("t\xEDtulo inv\xE1lido: de 1 a 100 caracteres e sem < ou >");
59
60
  if (descricao !== void 0 && (descricao.length > 5e3 || !semAngulos(descricao))) throw new Error("descri\xE7\xE3o inv\xE1lida: at\xE9 5000 caracteres e sem < ou >");
60
61
  if (tags !== void 0 && (!Array.isArray(tags) || tags.join(",").length > 500)) throw new Error("tags inv\xE1lidas: lista de at\xE9 500 caracteres no total");
@@ -63,9 +64,9 @@ async function editarVideo({ ctx, videoId, titulo, descricao, tags, simular = fa
63
64
  if (!v) throw Object.assign(new Error(`o v\xEDdeo ${videoId} n\xE3o existe neste canal`), { status: 404 });
64
65
  const atual = {};
65
66
  for (const k of CAMPOS_SNIPPET) if (v.snippet?.[k] !== void 0) atual[k] = v.snippet[k];
66
- const novo = { ...atual, ...titulo !== void 0 ? { title: titulo } : {}, ...descricao !== void 0 ? { description: descricao } : {}, ...tags !== void 0 ? { tags } : {} };
67
- const antes = { titulo: atual.title, descricao: atual.description, tags: atual.tags || [] };
68
- const depois = { titulo: novo.title, descricao: novo.description, tags: novo.tags || [] };
67
+ const novo = { ...atual, ...titulo !== void 0 ? { title: titulo } : {}, ...descricao !== void 0 ? { description: descricao } : {}, ...tags !== void 0 ? { tags } : {}, ...categoriaId !== void 0 ? { categoryId: String(categoriaId) } : {} };
68
+ const antes = { titulo: atual.title, descricao: atual.description, tags: atual.tags || [], categoriaId: atual.categoryId };
69
+ const depois = { titulo: novo.title, descricao: novo.description, tags: novo.tags || [], categoriaId: novo.categoryId };
69
70
  const mudou = JSON.stringify(antes) !== JSON.stringify(depois);
70
71
  if (simular || !mudou) return { id: videoId, antes, depois, mudou, escrito: false };
71
72
  await lerJson(await api(ctx, `${API}/videos?part=snippet`, { method: "PUT", headers: { "content-type": "application/json" }, body: JSON.stringify({ id: videoId, snippet: novo }) }));
@@ -148,7 +149,7 @@ async function estatisticasVideos({ ctx, ids }) {
148
149
  const saida = /* @__PURE__ */ new Map(), unicos = [...new Set(ids)];
149
150
  for (let i = 0; i < unicos.length; i += 50) {
150
151
  const lote = unicos.slice(i, i + 50);
151
- const d = await lerJson(await api(ctx, `${API}/videos?part=snippet,status,statistics&id=${lote.map(encodeURIComponent).join(",")}&maxResults=50`));
152
+ const d = await lerJson(await api(ctx, `${API}/videos?part=snippet,status,statistics&id=${lote.map((x) => encodeURIComponent(x)).join(",")}&maxResults=50`));
152
153
  for (const v of d.items || []) {
153
154
  saida.set(v.id, {
154
155
  views: num(v.statistics?.viewCount),
@@ -1,6 +1,6 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
 
3
- // ../core/src/provedores/youtube-api.mjs
3
+ // ../core/src/provedores/youtube-api.ts
4
4
  var nome = "youtube";
5
5
  var rede = "youtube";
6
6
  var imediato = true;
@@ -309,10 +309,26 @@ async function agendarPublicacao({ item, ctx, agora = Date.now() }) {
309
309
  const v = (await r0.json()).items?.[0];
310
310
  if (!v) throw new Error(`o v\xEDdeo ${item.videoId} n\xE3o existe neste canal`);
311
311
  const st = v.status || {};
312
+ if (st.privacyStatus && st.privacyStatus !== "private") throw Object.assign(new Error(`o v\xEDdeo ${item.videoId} j\xE1 est\xE1 ${st.privacyStatus} no YouTube: o hor\xE1rio s\xF3 muda enquanto ele est\xE1 privado e agendado`), { videoPublicado: true });
313
+ const novoPublishAt = quando.toISOString();
314
+ if (st.privacyStatus === "private" && st.publishAt && new Date(st.publishAt).toISOString() === novoPublishAt) return { id: item.videoId, publishAt: novoPublishAt, privacidade: "private", url: `https://youtu.be/${item.videoId}`, alterado: false };
312
315
  const status2 = { privacyStatus: "private", publishAt: quando.toISOString(), embeddable: st.embeddable ?? true, license: st.license || "youtube", publicStatsViewable: st.publicStatsViewable ?? true, selfDeclaredMadeForKids: st.selfDeclaredMadeForKids ?? false };
313
316
  const r = await api(ctx, `${API}/videos?part=status`, { method: "PUT", headers: { "content-type": "application/json" }, body: JSON.stringify({ id: item.videoId, status: status2 }) });
314
317
  if (!r.ok) throw falha(r.status, await r.text());
315
- return { id: item.videoId, publishAt: status2.publishAt, privacidade: "private", url: `https://youtu.be/${item.videoId}` };
318
+ return { id: item.videoId, publishAt: status2.publishAt, privacidade: "private", url: `https://youtu.be/${item.videoId}`, alterado: true };
319
+ }
320
+ async function removerAgendamento({ item, ctx }) {
321
+ const r0 = await api(ctx, `${API}/videos?part=status&id=${encodeURIComponent(item.videoId)}`);
322
+ if (!r0.ok) throw falha(r0.status, await r0.text());
323
+ const v = (await r0.json()).items?.[0];
324
+ if (!v) throw Object.assign(new Error(`o v\xEDdeo ${item.videoId} n\xE3o existe neste canal`), { status: 404 });
325
+ const st = v.status || {};
326
+ if (st.privacyStatus !== "private") throw Object.assign(new Error(`o v\xEDdeo ${item.videoId} j\xE1 est\xE1 ${st.privacyStatus || "publicado"} no YouTube`), { videoPublicado: true });
327
+ if (!st.publishAt) return { id: item.videoId, privacidade: "private", alterado: false };
328
+ const status2 = { privacyStatus: "private", embeddable: st.embeddable ?? true, license: st.license || "youtube", publicStatsViewable: st.publicStatsViewable ?? true, selfDeclaredMadeForKids: st.selfDeclaredMadeForKids ?? false };
329
+ const r = await api(ctx, `${API}/videos?part=status`, { method: "PUT", headers: { "content-type": "application/json" }, body: JSON.stringify({ id: item.videoId, status: status2 }) });
330
+ if (!r.ok) throw falha(r.status, await r.text());
331
+ return { id: item.videoId, privacidade: "private", alterado: true };
316
332
  }
317
333
 
318
334
  export {
@@ -359,5 +375,6 @@ export {
359
375
  comentar,
360
376
  canalId,
361
377
  planejar,
362
- agendarPublicacao
378
+ agendarPublicacao,
379
+ removerAgendamento
363
380
  };
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import "./chunk-LCFK6X55.mjs";
3
3
 
4
- // ../core/src/provedores/instagram.mjs
4
+ // ../core/src/provedores/instagram.ts
5
5
  import { spawnSync } from "node:child_process";
6
6
  import { existsSync, statSync } from "node:fs";
7
7
  import { tmpdir } from "node:os";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import "./chunk-LCFK6X55.mjs";
3
3
 
4
- // ../core/src/provedores/instagram-meta.mjs
4
+ // ../core/src/provedores/instagram-meta.ts
5
5
  var REF_META = "instagram/meta";
6
6
  var HOST_PADRAO = "https://graph.facebook.com";
7
7
  var VERSAO = "v23.0";
@@ -66,6 +66,7 @@ async function inspecionarToken(ctx, { appId, appSecret, token }) {
66
66
  const iso = (n) => n ? new Date(Number(n) * 1e3).toISOString() : null;
67
67
  return {
68
68
  tipo: d.type || null,
69
+ userId: d.user_id ? String(d.user_id) : null,
69
70
  valido: d.is_valid ?? null,
70
71
  expiraEm: d.expires_at ? iso(d.expires_at) : null,
71
72
  dadosExpiramEm: d.data_access_expires_at ? iso(d.data_access_expires_at) : null,
@@ -3,9 +3,9 @@ import {
3
3
  MODO_PADRAO,
4
4
  criar,
5
5
  estadoDe
6
- } from "./chunk-IZEX746E.mjs";
7
- import "./chunk-6YARHJZ2.mjs";
8
- import "./chunk-Z325UM27.mjs";
6
+ } from "./chunk-SPELUAPP.mjs";
7
+ import "./chunk-SSYEOFS5.mjs";
8
+ import "./chunk-SL4UDIFM.mjs";
9
9
  import "./chunk-LCFK6X55.mjs";
10
10
  export {
11
11
  MODO_PADRAO,
@@ -3,7 +3,7 @@ import {
3
3
  NOMES,
4
4
  carregar,
5
5
  carregarTodos
6
- } from "./chunk-6YARHJZ2.mjs";
6
+ } from "./chunk-SSYEOFS5.mjs";
7
7
  import "./chunk-LCFK6X55.mjs";
8
8
  export {
9
9
  NOMES,
@@ -3,8 +3,8 @@ import {
3
3
  REF_CHAVE,
4
4
  criar,
5
5
  itemDoContrato
6
- } from "./chunk-QDZLRBTP.mjs";
7
- import "./chunk-Z325UM27.mjs";
6
+ } from "./chunk-FZ2EWUHA.mjs";
7
+ import "./chunk-SL4UDIFM.mjs";
8
8
  import "./chunk-LCFK6X55.mjs";
9
9
  export {
10
10
  REF_CHAVE,
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import "./chunk-LCFK6X55.mjs";
3
3
 
4
- // ../core/src/provedores/tiktok.mjs
4
+ // ../core/src/provedores/tiktok.ts
5
5
  import { closeSync, openSync, readSync, statSync } from "node:fs";
6
6
  import { createHash, randomBytes } from "node:crypto";
7
7
  import { spawnSync } from "node:child_process";
@@ -1,7 +1,7 @@
1
1
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
2
2
  import "./chunk-LCFK6X55.mjs";
3
3
 
4
- // ../core/src/provedores/tiktok-api.mjs
4
+ // ../core/src/provedores/tiktok-api.ts
5
5
  var nome = "tiktok";
6
6
  var rede = "tiktok";
7
7
  var imediato = true;
@@ -38,16 +38,17 @@ import {
38
38
  publicar,
39
39
  rede,
40
40
  registroToken,
41
+ removerAgendamento,
41
42
  revogar,
42
43
  sincronizarUpload,
43
44
  status,
44
45
  tokenValido,
45
46
  trocarCodigo,
46
47
  urlAutorizacao
47
- } from "./chunk-UK3UKRPR.mjs";
48
+ } from "./chunk-V3GB2IUZ.mjs";
48
49
  import "./chunk-LCFK6X55.mjs";
49
50
 
50
- // ../core/src/provedores/youtube.mjs
51
+ // ../core/src/provedores/youtube.ts
51
52
  import { createServer } from "node:http";
52
53
  import { createHash, randomBytes } from "node:crypto";
53
54
  import { closeSync, fstatSync, openSync, readSync, statSync } from "node:fs";
@@ -190,6 +191,7 @@ export {
190
191
  publicar2 as publicar,
191
192
  rede,
192
193
  registroToken,
194
+ removerAgendamento,
193
195
  revogar,
194
196
  sincronizarUpload,
195
197
  status2 as status,
@@ -5,10 +5,10 @@ import {
5
5
  REF_TOKEN,
6
6
  api,
7
7
  falha
8
- } from "./chunk-UK3UKRPR.mjs";
8
+ } from "./chunk-V3GB2IUZ.mjs";
9
9
  import "./chunk-LCFK6X55.mjs";
10
10
 
11
- // ../core/src/provedores/youtube-analytics.mjs
11
+ // ../core/src/provedores/youtube-analytics.ts
12
12
  var ANALYTICS = "https://youtubeanalytics.googleapis.com/v2/reports";
13
13
  var REPORTING = "https://youtubereporting.googleapis.com/v1";
14
14
  var TIPO_RELATORIO_ALCANCE = "channel_reach_basic_a1";
@@ -38,13 +38,14 @@ import {
38
38
  publicar,
39
39
  rede,
40
40
  registroToken,
41
+ removerAgendamento,
41
42
  revogar,
42
43
  sincronizarUpload,
43
44
  status,
44
45
  tokenValido,
45
46
  trocarCodigo,
46
47
  urlAutorizacao
47
- } from "./chunk-UK3UKRPR.mjs";
48
+ } from "./chunk-V3GB2IUZ.mjs";
48
49
  import "./chunk-LCFK6X55.mjs";
49
50
  export {
50
51
  API,
@@ -85,6 +86,7 @@ export {
85
86
  publicar,
86
87
  rede,
87
88
  registroToken,
89
+ removerAgendamento,
88
90
  revogar,
89
91
  sincronizarUpload,
90
92
  status,
@@ -9,8 +9,8 @@ import {
9
9
  listarVideos,
10
10
  responderComentario,
11
11
  trocarHashtags
12
- } from "./chunk-LLXYUCTT.mjs";
13
- import "./chunk-UK3UKRPR.mjs";
12
+ } from "./chunk-TDQGKU7I.mjs";
13
+ import "./chunk-V3GB2IUZ.mjs";
14
14
  import "./chunk-LCFK6X55.mjs";
15
15
  export {
16
16
  apagarVideo,