@hed-hog/core 0.0.394 → 0.0.396

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.
@@ -1 +1 @@
1
- {"version":3,"file":"payment.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA2K/D,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAI9C,CAAC"}
1
+ {"version":3,"file":"payment.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAgL/D,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAI9C,CAAC"}
@@ -149,7 +149,12 @@ const googlePlayTester = {
149
149
  return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(token, 'Google rejected the service account.'));
150
150
  }
151
151
  const packageName = (0, http_probe_1.str)(config, 'package_name');
152
- const app = await (0, http_probe_1.probeJson)(`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${encodeURIComponent(packageName)}/inappproducts?maxResults=1`, { headers: { Authorization: `Bearer ${token.body.access_token}` } }, ctx.signal);
152
+ // Sonda o catálogo de assinaturas, não `inappproducts`: o endpoint antigo responde
153
+ // 403 "Please migrate to the new publishing API." para quem já usa o modelo novo de
154
+ // assinaturas, e o 403 abaixo viraria "sem acesso ao app" — falso negativo eterno,
155
+ // que ainda por cima esconderia uma falta de permissão de verdade. É também a API
156
+ // que o gateway consome depois, então o teste passa a medir o que importa.
157
+ const app = await (0, http_probe_1.probeJson)(`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${encodeURIComponent(packageName)}/subscriptions?pageSize=1`, { headers: { Authorization: `Bearer ${token.body.access_token}` } }, ctx.signal);
153
158
  // Credencial válida; o vínculo com o app no Play Console é outra configuração,
154
159
  // feita no console e não aqui.
155
160
  if (app.status === 401 || app.status === 403) {
@@ -1 +1 @@
1
- {"version":3,"file":"payment.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"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"}
@@ -741,11 +741,6 @@
741
741
  slug: admin
742
742
  - where:
743
743
  slug: admin-access
744
- # O editor do CMS sobe capa de post e imagem de Open Graph por aqui.
745
- - where:
746
- slug: admin-cms
747
- - where:
748
- slug: cms-editor
749
744
  - url: /file
750
745
  method: DELETE
751
746
  type: HTTP
@@ -1625,38 +1620,6 @@
1625
1620
  slug: admin
1626
1621
  - where:
1627
1622
  slug: admin-access
1628
- - where:
1629
- slug: admin-campaign
1630
- - where:
1631
- slug: admin-cms
1632
- - where:
1633
- slug: cms-editor
1634
- - where:
1635
- slug: cms-publisher
1636
- - where:
1637
- slug: admin-finance
1638
- - where:
1639
- slug: admin-finance-operator
1640
- - where:
1641
- slug: finance-statements-editor
1642
- - where:
1643
- slug: admin-inbox
1644
- - where:
1645
- slug: inbox-owner
1646
- - where:
1647
- slug: admin-lms
1648
- - where:
1649
- slug: lms-instructor
1650
- - where:
1651
- slug: admin-operations-director
1652
- - where:
1653
- slug: admin-operations-project-manager
1654
- - where:
1655
- slug: operations-collaborator
1656
- - where:
1657
- slug: admin-sac
1658
- - where:
1659
- slug: sac-agent
1660
1623
  - url: /integration-event-catalog
1661
1624
  method: GET
1662
1625
  type: HTTP
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/core",
3
- "version": "0.0.394",
3
+ "version": "0.0.396",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,13 +45,13 @@
45
45
  "speakeasy": "^2.0.0",
46
46
  "ua-parser-js": "^2.0.10",
47
47
  "uuid": "^11.1.0",
48
- "@hed-hog/api-prisma": "0.0.6",
49
- "@hed-hog/api": "0.0.8",
50
- "@hed-hog/api-mail": "0.0.10",
51
- "@hed-hog/api-pagination": "0.0.7",
52
- "@hed-hog/api-types": "0.0.1",
53
48
  "@hed-hog/vault-crypto": "0.0.1",
54
- "@hed-hog/api-locale": "0.0.14"
49
+ "@hed-hog/api-prisma": "0.0.7",
50
+ "@hed-hog/api-locale": "0.0.15",
51
+ "@hed-hog/api-mail": "0.0.11",
52
+ "@hed-hog/api-types": "0.0.2",
53
+ "@hed-hog/api": "0.0.9",
54
+ "@hed-hog/api-pagination": "0.0.8"
55
55
  },
56
56
  "exports": {
57
57
  ".": {
@@ -152,10 +152,15 @@ const googlePlayTester: IntegrationTester = {
152
152
  }
153
153
 
154
154
  const packageName = str(config, 'package_name');
155
+ // Sonda o catálogo de assinaturas, não `inappproducts`: o endpoint antigo responde
156
+ // 403 "Please migrate to the new publishing API." para quem já usa o modelo novo de
157
+ // assinaturas, e o 403 abaixo viraria "sem acesso ao app" — falso negativo eterno,
158
+ // que ainda por cima esconderia uma falta de permissão de verdade. É também a API
159
+ // que o gateway consome depois, então o teste passa a medir o que importa.
155
160
  const app = await probeJson(
156
161
  `https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${encodeURIComponent(
157
162
  packageName,
158
- )}/inappproducts?maxResults=1`,
163
+ )}/subscriptions?pageSize=1`,
159
164
  { headers: { Authorization: `Bearer ${token.body.access_token}` } },
160
165
  ctx.signal,
161
166
  );
@@ -1,4 +1,5 @@
1
1
  import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals';
2
+ import { generateKeyPairSync } from 'node:crypto';
2
3
  import { AI_TESTERS } from './ai.testers';
3
4
  import { EMAIL_TESTERS } from './email.testers';
4
5
  import { INFRASTRUCTURE_TESTERS } from './infrastructure.testers';
@@ -328,6 +329,19 @@ describe('mercado_pago tester', () => {
328
329
  describe('google_play tester', () => {
329
330
  const tester = bySlug('google_play');
330
331
 
332
+ // O tester assina um JWT antes de tocar na rede, então os casos que chegam à API
333
+ // precisam de uma chave RSA de verdade — texto qualquer reprovaria na assinatura.
334
+ const { privateKey } = generateKeyPairSync('rsa', {
335
+ modulusLength: 2048,
336
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
337
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
338
+ });
339
+ const config = {
340
+ package_name: 'com.acme.app',
341
+ client_email: 'sa@acme.iam.gserviceaccount.com',
342
+ private_key: privateKey,
343
+ };
344
+
331
345
  it('reprova um service account JSON malformado, sem ir à rede', async () => {
332
346
  const outcome = await tester.test(
333
347
  { package_name: 'com.acme.app', service_account_json: '{ quebrado' },
@@ -347,6 +361,37 @@ describe('google_play tester', () => {
347
361
  expect(outcome.ok).toBe(false);
348
362
  expect(outcome.error).toContain('client email and private key');
349
363
  });
364
+
365
+ // `inappproducts` responde 403 "Please migrate to the new publishing API." para quem
366
+ // usa o modelo novo de assinaturas, e o tester lia esse 403 como falta de acesso ao
367
+ // app — aprovava com ressalva mesmo estando tudo certo.
368
+ it('sonda o catálogo de assinaturas, não o inappproducts legado', async () => {
369
+ fetchMock
370
+ .mockResolvedValueOnce(jsonResponse({ access_token: 'tok' }))
371
+ .mockResolvedValueOnce(jsonResponse({ subscriptions: [] }));
372
+
373
+ const outcome = await tester.test(config, ctx());
374
+
375
+ expect(outcome).toEqual({
376
+ ok: true,
377
+ info: 'com.acme.app — sa@acme.iam.gserviceaccount.com',
378
+ });
379
+
380
+ const [url] = fetchMock.mock.calls[1] as [string];
381
+ expect(url).toContain('/applications/com.acme.app/subscriptions');
382
+ expect(url).not.toContain('inappproducts');
383
+ });
384
+
385
+ it('mantém a ressalva quando a service account não enxerga o app', async () => {
386
+ fetchMock
387
+ .mockResolvedValueOnce(jsonResponse({ access_token: 'tok' }))
388
+ .mockResolvedValueOnce(jsonResponse({ error: { message: 'forbidden' } }, 403));
389
+
390
+ const outcome = await tester.test(config, ctx());
391
+
392
+ expect(outcome.ok).toBe(true);
393
+ expect(outcome.warning).toContain('no access to "com.acme.app"');
394
+ });
350
395
  });
351
396
 
352
397
  describe('digitalocean tester', () => {