@hed-hog/core 0.0.393 → 0.0.395

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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAoC;AACpC,6CAOsB;AAGtB;;;;;GAKG;AAEH,MAAM,YAAY,GAAsB;IACtC,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;;QAC1B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,MAAM,EAAE,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAC5B,mCAAmC,EACnC;YACE,OAAO,EAAE;gBACP,2DAA2D;gBAC3D,aAAa,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;aAC1E;SACF,EACD,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,IAAA,iBAAI,EAAC,4BAA4B,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,IAAA,iBAAI,EAAC,IAAA,8BAAiB,EAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,gFAAgF;QAChF,yCAAyC;QACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAA,MAAM,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,IAAA,gBAAG,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC;QAE5D,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,OAAO,IAAA,iBAAI,EAAC,KAAK,EAAE,8DAA8D,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAA,iBAAI,EAAC,KAAK,EAAE,2DAA2D,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAA,iBAAI,EAAC,KAAK,CAAC,CAAC;IACrB,CAAC;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAsB;IAC3C,YAAY,EAAE,cAAc;IAC5B,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;;QAC1B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAS,EAC5B,sCAAsC,EACtC,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAC7E,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACnD,OAAO,IAAA,iBAAI,EAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,IAAA,iBAAI,EAAC,IAAA,8BAAiB,EAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAA,MAAA,MAAM,CAAC,IAAI,0CAAE,OAAO,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,IAAA,iBAAI,EACT,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,sBAAsB,CACzE,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAsB;IAC1C,YAAY,EAAE,aAAa;IAC3B,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;;QAC1B,MAAM,OAAO,GAAG,IAAA,0BAAa,EAAC,MAAM,EAAE,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;QAE5B,0EAA0E;QAC1E,IAAI,WAAW,GAAG,IAAA,gBAAG,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC9C,IAAI,UAAU,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,mCAAI,EAAE,CAAC,CAAC;QAElD,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,oBAAoB,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5E,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC9C,WAAW,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,WAAW,CAAC,CAAC;gBACzD,UAAU,GAAG,MAAM,CAAC,MAAA,MAAM,CAAC,WAAW,mCAAI,UAAU,CAAC,CAAC;YACxD,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,IAAA,iBAAI,EAAC,6CAA6C,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;YAChC,OAAO,IAAA,iBAAI,EACT,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED,iFAAiF;QACjF,IAAI,SAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;YAC1C,SAAS,GAAG,GAAG,CAAC,IAAI,CAClB;gBACE,GAAG,EAAE,WAAW;gBAChB,KAAK,EAAE,kDAAkD;gBACzD,GAAG,EAAE,qCAAqC;gBAC1C,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,GAAG,GAAG,GAAG;aACf,EACD,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAChC,EAAE,SAAS,EAAE,OAAO,EAAE,CACvB,CAAC;QACJ,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAA,iBAAI,EAAC,sDAAsD,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,sBAAS,EAC3B,qCAAqC,EACrC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI,EAAE,IAAI,eAAe,CAAC;gBACxB,UAAU,EAAE,6CAA6C;gBACzD,SAAS;aACV,CAAC,CAAC,QAAQ,EAAE;SACd,EACD,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,YAAY,CAAA,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,iBAAiB,mCAAI,EAAE,CAAC,CAAC;YAChE,IAAI,4BAA4B,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAA,iBAAI,EACT,kFAAkF,CACnF,CAAC;YACJ,CAAC;YACD,OAAO,IAAA,iBAAI,EAAC,IAAA,8BAAiB,EAAC,KAAK,EAAE,sCAAsC,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,gBAAG,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,IAAA,sBAAS,EACzB,4EAA4E,kBAAkB,CAC5F,WAAW,CACZ,6BAA6B,EAC9B,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,EACnE,GAAG,CAAC,MAAM,CACX,CAAC;QAEF,+EAA+E;QAC/E,+BAA+B;QAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7C,OAAO,IAAA,iBAAI,EACT,mBAAmB,WAAW,EAAE,EAChC,yCAAyC,WAAW,4BAA4B,CACjF,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,OAAO,IAAA,iBAAI,EACT,mBAAmB,WAAW,EAAE,EAChC,YAAY,WAAW,kCAAkC,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,IAAA,iBAAI,EAAC,GAAG,WAAW,MAAM,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;CACF,CAAC;AAEW,QAAA,eAAe,GAAwB;IAClD,YAAY;IACZ,iBAAiB;IACjB,gBAAgB;CACjB,CAAC"}
1
+ {"version":3,"file":"payment.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/core",
3
- "version": "0.0.393",
3
+ "version": "0.0.395",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -46,12 +46,12 @@
46
46
  "ua-parser-js": "^2.0.10",
47
47
  "uuid": "^11.1.0",
48
48
  "@hed-hog/api-prisma": "0.0.6",
49
- "@hed-hog/api-mail": "0.0.10",
50
49
  "@hed-hog/vault-crypto": "0.0.1",
51
- "@hed-hog/api-types": "0.0.1",
52
- "@hed-hog/api-pagination": "0.0.7",
53
50
  "@hed-hog/api-locale": "0.0.14",
54
- "@hed-hog/api": "0.0.8"
51
+ "@hed-hog/api-mail": "0.0.10",
52
+ "@hed-hog/api": "0.0.8",
53
+ "@hed-hog/api-pagination": "0.0.7",
54
+ "@hed-hog/api-types": "0.0.1"
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', () => {