@reachy/audience-module 1.0.20 → 1.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.
@@ -13,7 +13,13 @@ export declare class AudienceModule {
13
13
  executeQuery(criteria: string | AudienceCriteria, options: AudienceQueryOptions): Promise<AudienceExecutionResult>;
14
14
  getContactCount(criteria: string | AudienceCriteria, options: Omit<AudienceQueryOptions, 'pagination'>): Promise<number>;
15
15
  getContactIds(criteria: string | AudienceCriteria, organizationId: string, projectId: string): Promise<Set<string>>;
16
- matchesContact(criteria: string | AudienceCriteria, organizationId: string, projectId: string, contactId: string): Promise<boolean>;
16
+ matchesContact(criteria: string | AudienceCriteria, organizationId: string, projectId: string, contactId: string, options?: {
17
+ triggerEvent?: {
18
+ event_id?: string;
19
+ event_name?: string;
20
+ event_timestamp?: string;
21
+ };
22
+ }): Promise<boolean>;
17
23
  createAudience(data: CreateAudienceData): Promise<{
18
24
  data: any;
19
25
  error: null;
@@ -1 +1 @@
1
- {"version":3,"file":"AudienceModule.d.ts","sourceRoot":"","sources":["../src/AudienceModule.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAuBhB,qBAAa,cAAc;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAwB;gBAElC,MAAM,GAAE,qBAA0B;IA4B9C,eAAe,CAAC,YAAY,EAAE;QAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,CAAA;QACxB,gBAAgB,CAAC,EAAE,GAAG,CAAA;KACvB;IAoBK,YAAY,CAChB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;IAc7B,eAAe,CACnB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC;IAQZ,aAAa,CACjB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAiBjB,cAAc,CAClB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IAgCb,cAAc,CAAC,IAAI,EAAE,kBAAkB;;;;IA8BvC,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,kBAAkB,EAC9B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;;;;IAmCb,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAUrE,cAAc,CAAC,EAAE,EAAE,MAAM;IAc/B,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiCjD,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,UAAU,GAAG,UAAuB;IAkBxC,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAqBhD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;;;;IAQpD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM;YAYzD,gBAAgB;CA6B/B"}
1
+ {"version":3,"file":"AudienceModule.d.ts","sourceRoot":"","sources":["../src/AudienceModule.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,SAAS,CAAA;AAuBhB,qBAAa,cAAc;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAwB;gBAElC,MAAM,GAAE,qBAA0B;IA4B9C,eAAe,CAAC,YAAY,EAAE;QAC5B,iBAAiB,CAAC,EAAE,GAAG,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,CAAA;QACxB,gBAAgB,CAAC,EAAE,GAAG,CAAA;KACvB;IAoBK,YAAY,CAChB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;IAc7B,eAAe,CACnB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,GAChD,OAAO,CAAC,MAAM,CAAC;IAQZ,aAAa,CACjB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAiBjB,cAAc,CAClB,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EACnC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,eAAe,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KACpF,GACA,OAAO,CAAC,OAAO,CAAC;IAiCb,cAAc,CAAC,IAAI,EAAE,kBAAkB;;;;IA8BvC,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,kBAAkB,EAC9B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM;;;;IAmCb,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAUrE,cAAc,CAAC,EAAE,EAAE,MAAM;IAc/B,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAiCjD,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAAE,EACpB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,UAAU,GAAG,UAAuB;IAkBxC,UAAU,CACd,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAqBhD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;;;;IAQpD,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM;YAYzD,gBAAgB;CA6B/B"}
@@ -56,13 +56,13 @@ class AudienceModule {
56
56
  const parsed = CriteriaParser_1.CriteriaParser.parse(criteria);
57
57
  return this.contactRepository.getContactIdsByAudienceCriteriaV2(organizationId, projectId, parsed);
58
58
  }
59
- async matchesContact(criteria, organizationId, projectId, contactId) {
59
+ async matchesContact(criteria, organizationId, projectId, contactId, options) {
60
60
  if (!this.contactRepository) {
61
61
  throw new Error('ContactRepository não configurado');
62
62
  }
63
63
  const parsed = CriteriaParser_1.CriteriaParser.parse(criteria);
64
64
  if (typeof this.contactRepository.matchesContactByAudienceCriteriaV2 === 'function') {
65
- return this.contactRepository.matchesContactByAudienceCriteriaV2(organizationId, projectId, parsed, contactId);
65
+ return this.contactRepository.matchesContactByAudienceCriteriaV2(organizationId, projectId, parsed, contactId, options?.triggerEvent);
66
66
  }
67
67
  const ids = await this.contactRepository.getContactIdsByAudienceCriteriaV2(organizationId, projectId, parsed);
68
68
  return ids.has(contactId);
@@ -1 +1 @@
1
- {"version":3,"file":"AudienceModule.js","sourceRoot":"","sources":["../src/AudienceModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudienceModule.js","sourceRoot":"","sources":["../src/AudienceModule.ts"],"names":[],"mappings":";;;AAAA,+EAA2E;AAC3E,8DAA0D;AAC1D,wFAAoF;AA+BpF,MAAa,cAAc;IAMzB,YAAY,SAAgC,EAAE;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,+CAAsB,EAAE,CAAA;QAGlD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,qDAAyB,CAAC;gBACzC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe;gBAC/B,MAAM,EAAE,OAAO;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,eAAe,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,CAAC;QAGD,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAE3B,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;gBAC3C,eAAe,EAAE,IAAI;gBACrB,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc;aAC3C,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAMD,eAAe,CAAC,YAIf;QACC,IAAI,YAAY,CAAC,iBAAiB,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,CAAA;YACvD,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAC1E,CAAC;QACD,IAAI,YAAY,CAAC,kBAAkB,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAA;QAC3D,CAAC;QACD,IAAI,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;QACvD,CAAC;IACH,CAAC;IASD,KAAK,CAAC,YAAY,CAChB,QAAmC,EACnC,OAA6B;QAE7B,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,MAAM,IAAI,GAAG,+BAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAEnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,eAAe,CACnB,QAAmC,EACnC,OAAiD;QAEjD,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1D,CAAC;IAKD,KAAK,CAAC,aAAa,CACjB,QAAmC,EACnC,cAAsB,EACtB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAC,iBAAiB,CAAC,iCAAiC,CAC7D,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAA;IACH,CAAC;IAMD,KAAK,CAAC,cAAc,CAClB,QAAmC,EACnC,cAAsB,EACtB,SAAiB,EACjB,SAAiB,EACjB,OAEC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAE7C,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,KAAK,UAAU,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC,iBAAiB,CAAC,kCAAkC,CAC9D,cAAc,EACd,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EAAE,YAAY,CACtB,CAAA;QACH,CAAC;QAGD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,iCAAiC,CACxE,cAAc,EACd,SAAS,EACT,MAAM,CACP,CAAA;QACD,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IASD,KAAK,CAAC,cAAc,CAAC,IAAwB;QAC3C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,MAAM,UAAU,GAAG,+BAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5E,IAAI,KAAK;YAAE,MAAM,KAAK,CAAA;QAEtB,MAAM,IAAI,GAAG,+BAAc,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC1D,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACtD,cAAc,EAAE,IAAI,CAAC,eAAe;gBACpC,SAAS,EAAE,IAAI,CAAC,UAAU;aAC3B,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC9D,QAAS,CAAC,KAAK,GAAG,KAAK,CAAA;QACzB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACxC,CAAC;IAKD,KAAK,CAAC,cAAc,CAClB,EAAU,EACV,UAA8B,EAC9B,cAAsB,EACtB,SAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,+BAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC/D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;QACtF,IAAI,KAAK;YAAE,MAAM,KAAK,CAAA;QAEtB,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,+BAAc,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAChE,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;oBAC5D,cAAc;oBACd,SAAS;iBACV,CAAC,CAAA;gBAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;gBACpD,QAAS,CAAC,KAAK,GAAG,KAAK,CAAA;YACzB,CAAC;QACH,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACxC,CAAC;IAKD,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,cAAsB,EAAE,SAAiB;QACzE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,CAAA;IACxE,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC3C,CAAC;IASD,YAAY,CAAC,QAAa,EAAE,SAAiB;QAC3C,IAAI,CAAC;YAEH,IAAI,MAAM,GAAG,QAAQ,CAAA;YACrB,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAGD,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CACtD,CAAA;wBACD,IAAI,KAAK;4BAAE,OAAO,IAAI,CAAA;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAKD,KAAK,CAAC,UAAU,CACd,UAAkB,EAClB,UAAoB,EACpB,cAAsB,EACtB,SAAiB,EACjB,SAAkC,UAAU;QAE5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CACrC,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,EACV,MAAM,CACP,CAAA;IACH,CAAC;IAKD,KAAK,CAAC,UAAU,CACd,UAAkB,EAClB,cAAsB,EACtB,SAAiB,EACjB,UAA8C;QAE9C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACtC,UAAU,EACV,cAAc,EACd,SAAS,EACT,UAAU,CACX,CAAA;IACH,CAAC;IASD,gBAAgB,CAAC,QAAmC;QAClD,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,+BAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACxC,CAAC;IAKD,eAAe,CAAC,QAAmC;QACjD,MAAM,MAAM,GAAG,+BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,OAAO,+BAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IASO,KAAK,CAAC,gBAAgB,CAC5B,SAA2B,EAC3B,OAA6B;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAE5B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACtE,EAAE,EACF,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,UAAU,CACnB,CAAA;QAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,OAAO,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAExE,OAAO;YACL,UAAU;YACV,QAAQ,EAAE,OAAO,IAAI,EAAE;YACvB,KAAK,EAAE,KAAK,IAAI,CAAC;YACjB,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,YAAY,EAAE,MAAM;aACrB;SACF,CAAA;IACH,CAAC;CACF;AAnXD,wCAmXC"}
@@ -6,7 +6,10 @@ export declare class QueryBuilder {
6
6
  private static applyFiltersCriteria;
7
7
  private static applyConditionsCriteria;
8
8
  private static applyCondition;
9
+ private static applyTagCondition;
10
+ private static normalizeTagValues;
9
11
  private static buildConditionString;
12
+ private static buildTagConditionString;
10
13
  private static mapFieldToColumn;
11
14
  }
12
15
  //# sourceMappingURL=QueryBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/QueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,qBAAa,YAAY;IAIvB,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAW3G,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmBpC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8BlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAuCnC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAoBtC,OAAO,CAAC,MAAM,CAAC,cAAc;IAwC7B,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAyCnC,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAoBhC"}
1
+ {"version":3,"file":"QueryBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/QueryBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,qBAAa,YAAY;IAIvB,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAW3G,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAmBpC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IA8BlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAuCnC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAoBtC,OAAO,CAAC,MAAM,CAAC,cAAc;IAyC7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAsBhC,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IA0CnC,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAqBtC,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAoBhC"}
@@ -88,6 +88,9 @@ class QueryBuilder {
88
88
  static applyCondition(query, condition) {
89
89
  const { field, operator, value } = condition;
90
90
  const dbField = this.mapFieldToColumn(field, condition.customFieldKey);
91
+ if (dbField === 'tags') {
92
+ return this.applyTagCondition(query, operator, value);
93
+ }
91
94
  switch (operator) {
92
95
  case 'equals':
93
96
  case 'eq':
@@ -119,11 +122,48 @@ class QueryBuilder {
119
122
  return query;
120
123
  }
121
124
  }
125
+ static applyTagCondition(query, operator, value) {
126
+ const op = String(operator || '').trim().toLowerCase();
127
+ const values = QueryBuilder.normalizeTagValues(value);
128
+ if (op === 'has_all' || op === 'equals' || op === 'eq' || op === '=') {
129
+ if (values.length === 0)
130
+ return query.eq('id', '__never__');
131
+ return query.contains('tags', values);
132
+ }
133
+ if (op === 'has_any' || op === 'contains' || op === 'in') {
134
+ if (values.length === 0)
135
+ return query.eq('id', '__never__');
136
+ return query.overlaps('tags', values);
137
+ }
138
+ if (op === 'is_empty') {
139
+ return query.or('tags.is.null,tags.eq.{}');
140
+ }
141
+ if (op === 'is_not_empty') {
142
+ return query.not('tags', 'is', null).neq('tags', '{}');
143
+ }
144
+ console.warn(`⚠️ Operador de tag desconhecido: ${operator}`);
145
+ return query.eq('id', '__never__');
146
+ }
147
+ static normalizeTagValues(value) {
148
+ if (value === null || value === undefined)
149
+ return [];
150
+ const raw = Array.isArray(value) ? value : String(value).split(',');
151
+ const out = [];
152
+ for (const item of raw) {
153
+ const v = String(item ?? '').trim();
154
+ if (v.length > 0)
155
+ out.push(v);
156
+ }
157
+ return out;
158
+ }
122
159
  static buildConditionString(condition) {
123
160
  const { field, operator, value } = condition;
124
161
  if (!field || !operator)
125
162
  return null;
126
163
  const dbField = this.mapFieldToColumn(field, condition.customFieldKey);
164
+ if (dbField === 'tags') {
165
+ return QueryBuilder.buildTagConditionString(operator, value);
166
+ }
127
167
  switch (operator) {
128
168
  case 'equals':
129
169
  case 'eq':
@@ -154,6 +194,26 @@ class QueryBuilder {
154
194
  return null;
155
195
  }
156
196
  }
197
+ static buildTagConditionString(operator, value) {
198
+ const op = String(operator || '').trim().toLowerCase();
199
+ const values = QueryBuilder.normalizeTagValues(value);
200
+ const arrLiteral = `{${values.map((v) => v.includes(',') ? `"${v.replace(/"/g, '\\"')}"` : v).join(',')}}`;
201
+ if (op === 'has_all' || op === 'equals' || op === 'eq' || op === '=') {
202
+ if (values.length === 0)
203
+ return null;
204
+ return `tags.cs.${arrLiteral}`;
205
+ }
206
+ if (op === 'has_any' || op === 'contains' || op === 'in') {
207
+ if (values.length === 0)
208
+ return null;
209
+ return `tags.ov.${arrLiteral}`;
210
+ }
211
+ if (op === 'is_empty')
212
+ return `tags.is.null`;
213
+ if (op === 'is_not_empty')
214
+ return `tags.not.is.null`;
215
+ return null;
216
+ }
157
217
  static mapFieldToColumn(field, customFieldKey) {
158
218
  if (field === 'custom_field' && customFieldKey) {
159
219
  return `properties->>${customFieldKey}`;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/builders/QueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../src/builders/QueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,11 @@ export declare class V2AudienceEngine {
18
18
  });
19
19
  private getProjectTimezone;
20
20
  getContactIdsByAudienceCriteriaV2(organizationId: string, projectId: string, criteriaRaw: any): Promise<Set<string>>;
21
- matchesContactByAudienceCriteriaV2(organizationId: string, projectId: string, criteriaRaw: any, contactId: string): Promise<boolean>;
21
+ matchesContactByAudienceCriteriaV2(organizationId: string, projectId: string, criteriaRaw: any, contactId: string, triggerEvent?: {
22
+ event_id?: string;
23
+ event_name?: string;
24
+ event_timestamp?: string;
25
+ }): Promise<boolean>;
22
26
  private dlog;
23
27
  }
24
28
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"V2AudienceEngine.d.ts","sourceRoot":"","sources":["../../src/engine/V2AudienceEngine.ts"],"names":[],"mappings":"AAIA,KAAK,MAAM,GAAG;IACZ,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC7B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAChC,CAAA;AAgRD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAA4C;IAE9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuD;IAC9E,OAAO,CAAC,MAAM,CAAC,YAAY,CAAgB;gBAE/B,MAAM,EAAE;QAAE,cAAc,EAAE,GAAG,CAAC;QAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;YAUvF,kBAAkB;IAyB1B,iCAAiC,CACrC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,GACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAw/BjB,kCAAkC,CACtC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC;IAmsBnB,OAAO,CAAC,IAAI;CAIb"}
1
+ {"version":3,"file":"V2AudienceEngine.d.ts","sourceRoot":"","sources":["../../src/engine/V2AudienceEngine.ts"],"names":[],"mappings":"AAIA,KAAK,MAAM,GAAG;IACZ,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC7B,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAChC,CAAA;AAySD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,UAAU,CAA4C;IAE9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuD;IAC9E,OAAO,CAAC,MAAM,CAAC,YAAY,CAAgB;gBAE/B,MAAM,EAAE;QAAE,cAAc,EAAE,GAAG,CAAC;QAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;YAUvF,kBAAkB;IAyB1B,iCAAiC,CACrC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,GACf,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAyjCjB,kCAAkC,CACtC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,GAAG,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,eAAe,CAAC,EAAE,MAAM,CAAA;KACzB,GACA,OAAO,CAAC,OAAO,CAAC;IA0wBnB,OAAO,CAAC,IAAI;CAIb"}
@@ -190,6 +190,36 @@ const normalizePropertyOp = (opRaw) => {
190
190
  return '<=';
191
191
  return op;
192
192
  };
193
+ const normalizeTagValues = (value) => {
194
+ if (value === null || value === undefined)
195
+ return [];
196
+ const raw = Array.isArray(value) ? value : String(value).split(',');
197
+ const out = [];
198
+ for (const item of raw) {
199
+ const v = String(item ?? '').trim();
200
+ if (v.length > 0)
201
+ out.push(v);
202
+ }
203
+ return out;
204
+ };
205
+ const normalizeTagOp = (opRaw) => {
206
+ const op = String(opRaw ?? '').trim().toLowerCase();
207
+ if (op === 'equals' || op === 'eq' || op === '=' || op === 'has_all' || op === 'has')
208
+ return 'equals';
209
+ if (op === 'not_equals' || op === 'neq' || op === '!=' || op === '<>')
210
+ return 'not_equals';
211
+ if (op === 'contains')
212
+ return 'contains';
213
+ if (op === 'not_contains')
214
+ return 'not_contains';
215
+ if (op === 'has_any' || op === 'in')
216
+ return 'has_any';
217
+ if (op === 'is_empty')
218
+ return 'is_empty';
219
+ if (op === 'is_not_empty')
220
+ return 'is_not_empty';
221
+ return op;
222
+ };
193
223
  const isNumericLike = (value) => {
194
224
  if (typeof value === 'number')
195
225
  return Number.isFinite(value);
@@ -1035,6 +1065,71 @@ class V2AudienceEngine {
1035
1065
  return { start: start.toISOString(), end: end.toISOString() };
1036
1066
  };
1037
1067
  const mappedField = mapAudienceFieldToContactField(field);
1068
+ if (field === 'tags' || mappedField === 'tags') {
1069
+ const tagOp = normalizeTagOp(opRaw);
1070
+ if (tagOp === 'contains' || tagOp === 'not_contains') {
1071
+ const expected = String(value ?? '').trim().toLowerCase();
1072
+ if (!expected)
1073
+ return new Set();
1074
+ const fetchQuery = this.supabase
1075
+ .from('contacts')
1076
+ .select('id, tags')
1077
+ .eq('organization_id', organizationId)
1078
+ .eq('project_id', projectId);
1079
+ const data = await fetchAll(fetchQuery, 1000);
1080
+ if (!data || data.length === 0)
1081
+ return new Set();
1082
+ const result = new Set();
1083
+ for (const row of data) {
1084
+ const id = row?.id;
1085
+ if (!id)
1086
+ continue;
1087
+ const tags = Array.isArray(row.tags) ? row.tags : [];
1088
+ const hasMatch = tags.some((t) => String(t ?? '').toLowerCase().includes(expected));
1089
+ if (tagOp === 'contains' && hasMatch)
1090
+ result.add(id);
1091
+ else if (tagOp === 'not_contains' && !hasMatch)
1092
+ result.add(id);
1093
+ }
1094
+ return result;
1095
+ }
1096
+ const tagValues = normalizeTagValues(value);
1097
+ let tagQuery = this.supabase
1098
+ .from('contacts')
1099
+ .select('id')
1100
+ .eq('organization_id', organizationId)
1101
+ .eq('project_id', projectId);
1102
+ if (tagOp === 'equals') {
1103
+ if (tagValues.length === 0)
1104
+ return new Set();
1105
+ tagQuery = tagQuery.contains('tags', tagValues);
1106
+ }
1107
+ else if (tagOp === 'not_equals') {
1108
+ if (tagValues.length === 0)
1109
+ return new Set();
1110
+ const arrLiteral = `{${tagValues.join(',')}}`;
1111
+ tagQuery = tagQuery.or(`tags.is.null,tags.not.cs.${arrLiteral}`);
1112
+ }
1113
+ else if (tagOp === 'has_any') {
1114
+ if (tagValues.length === 0)
1115
+ return new Set();
1116
+ tagQuery = tagQuery.overlaps('tags', tagValues);
1117
+ }
1118
+ else if (tagOp === 'is_empty') {
1119
+ tagQuery = tagQuery.or('tags.is.null,tags.eq.{}');
1120
+ }
1121
+ else if (tagOp === 'is_not_empty') {
1122
+ tagQuery = tagQuery.not('tags', 'is', null).neq('tags', '{}');
1123
+ }
1124
+ else {
1125
+ this.dlog('tags rule with unsupported op, returning empty', { opRaw, tagOp });
1126
+ return new Set();
1127
+ }
1128
+ const tagData = await fetchAll(tagQuery, 1000);
1129
+ if (!tagData || tagData.length === 0)
1130
+ return new Set();
1131
+ return new Set(tagData.map((r) => r.id));
1132
+ }
1038
1133
  const known = ['email', 'first_name', 'last_name', 'phone', 'is_subscribed', 'created_at', 'updated_at', 'name'];
1039
1134
  const isJsonb = !(known.includes(field) || known.includes(mappedField));
1040
1135
  const dbField = isJsonb ? `properties->>${field}` : mappedField;
@@ -1364,7 +1459,7 @@ class V2AudienceEngine {
1364
1459
  this.dlog('done', { total: finalSet.size });
1365
1460
  return finalSet;
1366
1461
  }
1367
- async matchesContactByAudienceCriteriaV2(organizationId, projectId, criteriaRaw, contactId) {
1462
+ async matchesContactByAudienceCriteriaV2(organizationId, projectId, criteriaRaw, contactId, triggerEvent) {
1368
1463
  let criteria = CriteriaParser_1.CriteriaParser.parse(criteriaRaw);
1369
1464
  if ((!Array.isArray(criteria.groups) || criteria.groups.length === 0) &&
1370
1465
  (Array.isArray(criteria.filters) || Array.isArray(criteria.conditions))) {
@@ -1417,6 +1512,17 @@ class V2AudienceEngine {
1417
1512
  ors.push(`reachy_id.eq.${reachyId}`);
1418
1513
  if (ors.length > 0)
1419
1514
  query = query.or(ors.join(','));
1515
+ const triggerEventNameMatches = !!triggerEvent &&
1516
+ typeof triggerEvent.event_name === 'string' &&
1517
+ String(triggerEvent.event_name).trim() === String(effectiveEventName).trim();
1518
+ if (triggerEvent && triggerEventNameMatches) {
1519
+ if (triggerEvent.event_id) {
1520
+ query = query.eq('id', triggerEvent.event_id);
1521
+ }
1522
+ else if (triggerEvent.event_timestamp) {
1523
+ query = query.eq('event_timestamp', triggerEvent.event_timestamp);
1524
+ }
1525
+ }
1420
1526
  if (typeId === 'live-page-visit') {
1421
1527
  const v = cfg.pageUrl;
1422
1528
  const d = cfg.domain;
@@ -1841,6 +1947,62 @@ class V2AudienceEngine {
1841
1947
  return { start: start.toISOString(), end: end.toISOString() };
1842
1948
  };
1843
1949
  const mappedField = mapAudienceFieldToContactField(field);
1950
+ if (field === 'tags' || mappedField === 'tags') {
1951
+ const tagOp = normalizeTagOp(opRaw);
1952
+ if (tagOp === 'contains' || tagOp === 'not_contains') {
1953
+ const expected = String(value ?? '').trim().toLowerCase();
1954
+ if (!expected)
1955
+ return false;
1956
+ const { data: tagsRow, error: tagsErr } = await this.supabase
1957
+ .from('contacts')
1958
+ .select('tags')
1959
+ .eq('organization_id', organizationId)
1960
+ .eq('project_id', projectId)
1961
+ .eq('id', contactId)
1962
+ .maybeSingle();
1963
+ if (tagsErr)
1964
+ return false;
1965
+ const tags = Array.isArray(tagsRow?.tags) ? tagsRow.tags : [];
1966
+ const hasMatch = tags.some((t) => String(t ?? '').toLowerCase().includes(expected));
1967
+ return tagOp === 'contains' ? hasMatch : !hasMatch;
1968
+ }
1969
+ const tagValues = normalizeTagValues(value);
1970
+ let tagQuery = this.supabase
1971
+ .from('contacts')
1972
+ .select('id')
1973
+ .eq('organization_id', organizationId)
1974
+ .eq('project_id', projectId)
1975
+ .eq('id', contactId);
1976
+ if (tagOp === 'equals') {
1977
+ if (tagValues.length === 0)
1978
+ return false;
1979
+ tagQuery = tagQuery.contains('tags', tagValues);
1980
+ }
1981
+ else if (tagOp === 'not_equals') {
1982
+ if (tagValues.length === 0)
1983
+ return false;
1984
+ const arrLiteral = `{${tagValues.join(',')}}`;
1985
+ tagQuery = tagQuery.or(`tags.is.null,tags.not.cs.${arrLiteral}`);
1986
+ }
1987
+ else if (tagOp === 'has_any') {
1988
+ if (tagValues.length === 0)
1989
+ return false;
1990
+ tagQuery = tagQuery.overlaps('tags', tagValues);
1991
+ }
1992
+ else if (tagOp === 'is_empty') {
1993
+ tagQuery = tagQuery.or('tags.is.null,tags.eq.{}');
1994
+ }
1995
+ else if (tagOp === 'is_not_empty') {
1996
+ tagQuery = tagQuery.not('tags', 'is', null).neq('tags', '{}');
1997
+ }
1998
+ else {
1999
+ return false;
2000
+ }
2001
+ const { data: tagData, error: tagErr } = await tagQuery;
2002
+ if (tagErr)
2003
+ return false;
2004
+ return Array.isArray(tagData) && tagData.length > 0;
2005
+ }
1844
2006
  const known = ['email', 'first_name', 'last_name', 'phone', 'is_subscribed', 'created_at', 'updated_at', 'name'];
1845
2007
  const isJsonb = !(known.includes(field) || known.includes(mappedField));
1846
2008
  const dbField = isJsonb ? `properties->>${field}` : mappedField;