@pulsemcp/air-sdk 0.0.26 → 0.0.28

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":"init-from-repo.d.ts","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AASA,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,CAAC;AAEnB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,IAAI,EAAE,qBAAqB;gBAD3C,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,qBAAqB;CAK9C;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,kDAAkD;IAClD,WAAW,EAAE,OAAO,CAAC;CACtB;AAaD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAaD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCvD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,kBAAkB,EAAE,CAkDtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAuGpB;AAED,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAAC,GACvC;IACE,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAuBxE"}
1
+ {"version":3,"file":"init-from-repo.d.ts","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAQ5B,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,CAAC;AAEnB;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,IAAI,EAAE,qBAAqB;gBAD3C,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,qBAAqB;CAK9C;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,UAAU,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,kDAAkD;IAClD,WAAW,EAAE,OAAO,CAAC;CACtB;AAaD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAaD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiCvD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,kBAAkB,EAAE,CA2DtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAuGpB;AAED,yDAAyD;AACzD,MAAM,MAAM,eAAe,GACvB,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAAC,GACvC;IACE,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,eAAe,CAuBxE"}
@@ -1,7 +1,7 @@
1
1
  import { execFileSync } from "child_process";
2
2
  import { readFileSync, existsSync, writeFileSync, mkdirSync, unlinkSync, } from "fs";
3
3
  import { resolve, dirname } from "path";
4
- import { getDefaultAirJsonPath, detectSchemaType, getAllSchemaTypes, } from "@pulsemcp/air-core";
4
+ import { getDefaultAirJsonPath, detectSchemaType, detectSchemaFromValue, getAllSchemaTypes, } from "@pulsemcp/air-core";
5
5
  import { initConfig } from "./init.js";
6
6
  /** Artifact types that map to air.json properties (all schema types except "air"). */
7
7
  const ARTIFACT_TYPES = getAllSchemaTypes().filter((t) => t !== "air");
@@ -140,6 +140,13 @@ export function discoverArtifacts(repoRoot, repo, branch) {
140
140
  if (typeof data !== "object" || data === null || Array.isArray(data)) {
141
141
  continue;
142
142
  }
143
+ // If the file declares a $schema, it must point to a known AIR schema.
144
+ // This rejects JSON Schema definitions, OpenAPI schemas, and any other
145
+ // structured JSON that happens to match an artifact keyword in its filename.
146
+ if (typeof data.$schema === "string" &&
147
+ !detectSchemaFromValue(data.$schema)) {
148
+ continue;
149
+ }
143
150
  }
144
151
  catch {
145
152
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"init-from-repo.js","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init-from-repo.js","sourceRoot":"","sources":["../src/init-from-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,SAAS,EACT,UAAU,GACX,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,sFAAsF;AACtF,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC,MAAM,CAC/C,CAAC,CAAC,EAAmC,EAAE,CAAC,CAAC,KAAK,KAAK,CACpD,CAAC;AAUF;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAGxB;IAFlB,YACE,OAAe,EACC,IAA2B;QAE3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAuB;QAG3C,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAmCD;;GAEG;AACH,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;QAC3D,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IAEjC,qCAAqC;IACrC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACpE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,2CAA2C;IAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAC9B,2CAA2C,CAC5C,CAAC;IACF,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAErC,MAAM,IAAI,KAAK,CACb,uDAAuD,OAAO,KAAK;QACjE,2CAA2C,CAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,MAAM,GAAG,QAAQ;IAClD,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE;QACxD,GAAG;QACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,OAAO;KAClB,CAAC,CAAC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,mDAAmD;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CACtB,KAAK,EACL,CAAC,cAAc,EAAE,0BAA0B,CAAC,EAC5C;YACE,GAAG;YACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO;SAClB,CACF,CAAC,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,MAAM,EAAE,CAAC,EAAE;gBACjE,GAAG;gBACH,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,WAAW;QACb,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,IAAY,EACZ,MAAc;IAEd,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;YACzD,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,UAAU,GAAyB,EAAE,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAExE,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE1C,+CAA+C;QAC/C,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,KAAK;YAAE,SAAS;QAClD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,SAAS;QAEnD,4DAA4D;QAC5D,yEAAyE;QACzE,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,SAAS;YACX,CAAC;YACD,uEAAuE;YACvE,uEAAuE;YACvE,6EAA6E;YAC7E,IACE,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAChC,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EACpC,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,GAAG,EAAE,YAAY,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA6B;IAE7B,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,qBAAqB,EAAE,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEpC,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAiB,CACzB,GAAG,WAAW,kBAAkB,EAChC,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CACzB,uEAAuE;YACrE,yCAAyC,EAC3C,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAiB,CACzB,sCAAsC;YACpC,uDAAuD,EACzD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,iBAAiB,CACzB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,WAAW,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,iBAAiB,CACzB,yDAAyD;YACvD,kEAAkE,EACpE,cAAc,CACf,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAA0C,EAAE,CAAC;IAC1D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,oCAAoC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE5D,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,OAAO,GAA4B;QACvC,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE;YACV,8BAA8B;YAC9B,+BAA+B;YAC/B,2BAA2B;YAC3B,4BAA4B;SAC7B;KACF,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,eAAe;IACf,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE,OAAO;QACL,WAAW;QACX,MAAM;QACN,IAAI;QACJ,MAAM;QACN,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAA6B;IACrD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IAEtC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC;YAAE,MAAM,GAAG,CAAC;QAEnD,mDAAmD;QACnD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;QAErC,0EAA0E;QAC1E,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,IAAI,qBAAqB,EAAE,CAAC;YAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,UAAU,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;IACtC,CAAC;AACH,CAAC"}
package/dist/update.d.ts CHANGED
@@ -2,11 +2,30 @@ import { type CacheRefreshResult } from "@pulsemcp/air-core";
2
2
  export interface UpdateProviderCachesOptions {
3
3
  /** Path to air.json. Uses AIR_CONFIG env or ~/.air/air.json if not set. */
4
4
  config?: string;
5
+ /**
6
+ * When true (default), automatically upgrade provider extensions that
7
+ * are installed at a version too old to expose `refreshCache()` before
8
+ * loading them. Disable in tests or when running offline.
9
+ */
10
+ autoHeal?: boolean;
11
+ /**
12
+ * Override for the npm install command used by auto-heal. Tests pass a
13
+ * stub here to simulate upgrade outcomes without touching the network.
14
+ */
15
+ runNpmInstallLatest?: NpmInstallLatest;
5
16
  }
6
17
  export interface UpdateProviderCachesResult {
7
18
  /** Results from each provider, keyed by provider scheme. */
8
19
  results: Record<string, CacheRefreshResult[]>;
9
20
  }
21
+ /**
22
+ * Hook used by tests to stub out the real `npm install` invocation.
23
+ * The default implementation shells out to `npm install <pkg>@latest`.
24
+ */
25
+ export type NpmInstallLatest = (packageName: string, prefix: string) => Promise<{
26
+ ok: boolean;
27
+ stderr: string;
28
+ }>;
10
29
  /**
11
30
  * Refresh all provider caches.
12
31
  *
@@ -14,8 +33,13 @@ export interface UpdateProviderCachesResult {
14
33
  * 1. From air.json extensions (if air.json exists)
15
34
  * 2. By scanning ~/.air/cache/ for known provider cache directories
16
35
  *
17
- * This ensures cached data is refreshed even when the provider isn't
18
- * explicitly listed in air.json's extensions array.
36
+ * Before loading any provider modules, runs a pre-flight check that
37
+ * compares the installed version of each known provider package against
38
+ * the minimum required for `refreshCache()` support. Outdated packages
39
+ * are upgraded with `npm install <pkg>@latest` so the freshly loaded
40
+ * module exposes cache refresh — making `air update` self-healing
41
+ * across CLI upgrades that outpace the extension packages installed
42
+ * under `~/.air/`.
19
43
  */
20
44
  export declare function updateProviderCaches(options?: UpdateProviderCachesOptions): Promise<UpdateProviderCachesResult>;
21
45
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AAY5B,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;CAC/C;AAqED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,0BAA0B,CAAC,CA6CrC"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,kBAAkB,EAGxB,MAAM,oBAAoB,CAAC;AA0B5B,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,CAAC;CACxC;AAED,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA8R9C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,0BAA0B,CAAC,CA4GrC"}
package/dist/update.js CHANGED
@@ -1,17 +1,31 @@
1
- import { createRequire } from "module";
2
- import { existsSync, readdirSync } from "fs";
1
+ import { execFile } from "child_process";
2
+ import { existsSync, readFileSync, readdirSync } from "fs";
3
3
  import { dirname, join, resolve } from "path";
4
4
  import { pathToFileURL } from "url";
5
+ import { createRequire } from "module";
5
6
  import { loadAirConfig, getAirJsonPath, getDefaultAirJsonPath, } from "@pulsemcp/air-core";
6
7
  import { loadExtensions } from "./extension-loader.js";
7
8
  import { resolveEsmEntry } from "./esm-resolve.js";
8
9
  /**
9
10
  * Known provider packages, keyed by their cache directory name (scheme).
10
- * Used to auto-discover providers when air.json doesn't list them.
11
+ * Used to auto-discover providers when air.json doesn't list them and to
12
+ * auto-upgrade providers that are too old to support cache refresh.
11
13
  */
12
14
  const KNOWN_PROVIDERS = {
13
15
  github: "@pulsemcp/air-provider-github",
14
16
  };
17
+ /**
18
+ * Minimum version of each known provider package required to support
19
+ * `refreshCache()`. When the installed version is older than this, the
20
+ * pre-flight upgrade step in {@link updateProviderCaches} will run
21
+ * `npm install <pkg>@latest` so the freshly loaded module exposes
22
+ * cache refresh.
23
+ *
24
+ * Bump these when raising the SDK's expectations of providers.
25
+ */
26
+ const PROVIDER_MIN_VERSIONS = {
27
+ "@pulsemcp/air-provider-github": "0.0.21",
28
+ };
15
29
  /**
16
30
  * Get the AIR cache root directory (~/.air/cache).
17
31
  * Derived from getDefaultAirJsonPath() to stay in sync with core's
@@ -37,6 +51,91 @@ function discoverCachedSchemes() {
37
51
  return [];
38
52
  }
39
53
  }
54
+ /**
55
+ * Read the installed version of an npm package from its package.json,
56
+ * looking under `<prefix>/node_modules/<packageName>`.
57
+ */
58
+ function readInstalledVersion(packageName, prefix) {
59
+ try {
60
+ const pkgPath = join(prefix, "node_modules", packageName, "package.json");
61
+ if (!existsSync(pkgPath))
62
+ return null;
63
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
64
+ return typeof pkg.version === "string" ? pkg.version : null;
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ /**
71
+ * Compare two semver-ish version strings of the form `MAJOR.MINOR.PATCH`.
72
+ * Returns a negative number if `a < b`, 0 if equal, positive if `a > b`.
73
+ * Pre-release suffixes are ignored — we only need ordering for known
74
+ * provider versions like `0.0.13` vs `0.0.21`.
75
+ */
76
+ function compareVersions(a, b) {
77
+ const parse = (v) => v
78
+ .split("-")[0]
79
+ .split(".")
80
+ .map((n) => Number.parseInt(n, 10) || 0);
81
+ const av = parse(a);
82
+ const bv = parse(b);
83
+ const len = Math.max(av.length, bv.length);
84
+ for (let i = 0; i < len; i++) {
85
+ const diff = (av[i] ?? 0) - (bv[i] ?? 0);
86
+ if (diff !== 0)
87
+ return diff;
88
+ }
89
+ return 0;
90
+ }
91
+ /**
92
+ * Strip a version suffix from an npm specifier so we can compare against
93
+ * known package names. Mirrors the helper in `install.ts`.
94
+ */
95
+ function stripVersion(specifier) {
96
+ if (specifier.startsWith("@")) {
97
+ const slashIdx = specifier.indexOf("/");
98
+ if (slashIdx !== -1) {
99
+ const afterSlash = specifier.slice(slashIdx + 1);
100
+ const atIdx = afterSlash.indexOf("@");
101
+ if (atIdx !== -1) {
102
+ return specifier.slice(0, slashIdx + 1 + atIdx);
103
+ }
104
+ }
105
+ return specifier;
106
+ }
107
+ const atIdx = specifier.indexOf("@");
108
+ if (atIdx > 0) {
109
+ return specifier.slice(0, atIdx);
110
+ }
111
+ return specifier;
112
+ }
113
+ /**
114
+ * Default implementation of {@link NpmInstallLatest} — runs
115
+ * `npm install --prefix <prefix> --prefer-offline <pkg>@latest`.
116
+ */
117
+ const defaultNpmInstallLatest = (packageName, prefix) => new Promise((resolveResult) => {
118
+ execFile("npm", [
119
+ "install",
120
+ "--prefix",
121
+ prefix,
122
+ "--prefer-offline",
123
+ "--no-audit",
124
+ "--no-fund",
125
+ "--silent",
126
+ `${packageName}@latest`,
127
+ ], { stdio: "pipe" }, (err, _stdout, stderr) => {
128
+ if (err) {
129
+ resolveResult({
130
+ ok: false,
131
+ stderr: stderr?.toString() ?? String(err),
132
+ });
133
+ }
134
+ else {
135
+ resolveResult({ ok: true, stderr: "" });
136
+ }
137
+ });
138
+ });
40
139
  /**
41
140
  * Try to load a provider extension by package name, searching the given
42
141
  * directories for the installed package. Handles CJS, ESM-only, and
@@ -76,6 +175,101 @@ async function tryLoadProvider(packageName, searchDirs) {
76
175
  return null;
77
176
  }
78
177
  }
178
+ /**
179
+ * Build the list of directories to search when resolving a provider
180
+ * package by name.
181
+ */
182
+ function buildSearchDirs(airJsonDir) {
183
+ const dirs = [];
184
+ if (airJsonDir)
185
+ dirs.push(airJsonDir);
186
+ const defaultAirDir = dirname(getDefaultAirJsonPath());
187
+ if (defaultAirDir !== airJsonDir)
188
+ dirs.push(defaultAirDir);
189
+ return dirs;
190
+ }
191
+ /**
192
+ * Pre-flight: walk the extensions array in air.json and any cached
193
+ * provider schemes on disk, and `npm install <pkg>@latest` for any
194
+ * known provider whose installed version is below the minimum required
195
+ * for `refreshCache()` support.
196
+ *
197
+ * Runs BEFORE any provider modules are imported so the freshly
198
+ * installed package is what gets loaded — Node caches modules by URL
199
+ * and there is no reliable way to bust the transitive import cache once
200
+ * a stale version has been imported in-process.
201
+ */
202
+ async function preflightUpgradeProviders(extensionSpecs, cachedSchemes, installPrefix, runNpmInstallLatest) {
203
+ // Collect the set of provider package names we should consider, drawn
204
+ // from both the air.json extensions list and any cached scheme that
205
+ // maps to a known provider package. We dedupe by package name.
206
+ const candidates = new Set();
207
+ for (const spec of extensionSpecs) {
208
+ if (typeof spec !== "string")
209
+ continue;
210
+ const name = stripVersion(spec);
211
+ // Only consider known providers — we won't auto-install arbitrary
212
+ // packages on the user's behalf.
213
+ if (Object.values(KNOWN_PROVIDERS).includes(name)) {
214
+ candidates.add(name);
215
+ }
216
+ }
217
+ for (const scheme of cachedSchemes) {
218
+ const name = KNOWN_PROVIDERS[scheme];
219
+ if (name)
220
+ candidates.add(name);
221
+ }
222
+ const outcomes = [];
223
+ for (const packageName of candidates) {
224
+ const minVersion = PROVIDER_MIN_VERSIONS[packageName];
225
+ if (!minVersion)
226
+ continue;
227
+ const installed = readInstalledVersion(packageName, installPrefix);
228
+ // Not installed at all under this prefix — leave alone. The
229
+ // extension loader will handle missing packages with its own
230
+ // error path; auto-installing absent packages goes beyond what
231
+ // `air update` is supposed to do.
232
+ if (!installed)
233
+ continue;
234
+ if (compareVersions(installed, minVersion) >= 0)
235
+ continue;
236
+ const scheme = Object.entries(KNOWN_PROVIDERS).find(([, n]) => n === packageName)?.[0] ??
237
+ "";
238
+ const installResult = await runNpmInstallLatest(packageName, installPrefix);
239
+ const after = readInstalledVersion(packageName, installPrefix);
240
+ outcomes.push({
241
+ packageName,
242
+ scheme,
243
+ attempted: true,
244
+ ok: installResult.ok,
245
+ beforeVersion: installed,
246
+ afterVersion: after,
247
+ stderr: installResult.stderr || undefined,
248
+ });
249
+ }
250
+ return outcomes;
251
+ }
252
+ /**
253
+ * Build a {@link CacheRefreshResult} describing a single upgrade outcome,
254
+ * suitable for prepending to the per-scheme results array.
255
+ */
256
+ function upgradeNotice(outcome) {
257
+ if (outcome.ok) {
258
+ const before = outcome.beforeVersion ?? "(none)";
259
+ const after = outcome.afterVersion ?? "latest";
260
+ return {
261
+ label: outcome.packageName,
262
+ updated: true,
263
+ message: `upgraded provider package ${before} → ${after}`,
264
+ };
265
+ }
266
+ return {
267
+ label: outcome.packageName,
268
+ updated: false,
269
+ message: `failed to auto-upgrade provider package` +
270
+ (outcome.stderr ? `: ${outcome.stderr.trim().split("\n")[0]}` : ""),
271
+ };
272
+ }
79
273
  /**
80
274
  * Refresh all provider caches.
81
275
  *
@@ -83,47 +277,99 @@ async function tryLoadProvider(packageName, searchDirs) {
83
277
  * 1. From air.json extensions (if air.json exists)
84
278
  * 2. By scanning ~/.air/cache/ for known provider cache directories
85
279
  *
86
- * This ensures cached data is refreshed even when the provider isn't
87
- * explicitly listed in air.json's extensions array.
280
+ * Before loading any provider modules, runs a pre-flight check that
281
+ * compares the installed version of each known provider package against
282
+ * the minimum required for `refreshCache()` support. Outdated packages
283
+ * are upgraded with `npm install <pkg>@latest` so the freshly loaded
284
+ * module exposes cache refresh — making `air update` self-healing
285
+ * across CLI upgrades that outpace the extension packages installed
286
+ * under `~/.air/`.
88
287
  */
89
288
  export async function updateProviderCaches(options) {
90
289
  const airJsonPath = options?.config ?? getAirJsonPath();
91
- const providers = new Map();
290
+ const autoHeal = options?.autoHeal ?? true;
291
+ const runNpmInstallLatest = options?.runNpmInstallLatest ?? defaultNpmInstallLatest;
92
292
  let airJsonDir = null;
93
- // Load providers from air.json extensions if available
293
+ let extensionSpecs = [];
94
294
  if (airJsonPath) {
95
295
  airJsonDir = dirname(resolve(airJsonPath));
96
296
  const airConfig = loadAirConfig(airJsonPath);
97
- const loaded = await loadExtensions(airConfig.extensions || [], airJsonDir);
297
+ extensionSpecs = airConfig.extensions ?? [];
298
+ }
299
+ const installPrefix = airJsonDir ?? dirname(getDefaultAirJsonPath());
300
+ const cachedSchemes = discoverCachedSchemes();
301
+ const cachedSchemeSet = new Set(cachedSchemes);
302
+ // Pre-flight: upgrade any stale provider packages BEFORE loading
303
+ // them. We must do this before any import() of the provider runs
304
+ // because Node caches modules by URL and there is no reliable way to
305
+ // bust the transitive import cache once a stale module is loaded.
306
+ const upgradeOutcomes = autoHeal
307
+ ? await preflightUpgradeProviders(extensionSpecs, cachedSchemes, installPrefix, runNpmInstallLatest)
308
+ : [];
309
+ // Load providers from air.json extensions if available
310
+ const providers = new Map();
311
+ if (airJsonPath) {
312
+ const loaded = await loadExtensions(extensionSpecs, airJsonDir);
98
313
  for (const ext of loaded.providers) {
99
314
  const provider = ext.provider;
100
315
  providers.set(provider.scheme, provider);
101
316
  }
102
317
  }
103
318
  // Discover additional providers from cache directory
104
- const cachedSchemes = discoverCachedSchemes();
105
319
  for (const scheme of cachedSchemes) {
106
320
  if (providers.has(scheme))
107
321
  continue;
108
322
  const packageName = KNOWN_PROVIDERS[scheme];
109
323
  if (!packageName)
110
324
  continue;
111
- const searchDirs = [];
112
- if (airJsonDir)
113
- searchDirs.push(airJsonDir);
114
- const defaultAirDir = dirname(getDefaultAirJsonPath());
115
- if (defaultAirDir !== airJsonDir)
116
- searchDirs.push(defaultAirDir);
117
- const provider = await tryLoadProvider(packageName, searchDirs);
118
- if (provider?.refreshCache) {
325
+ const provider = await tryLoadProvider(packageName, buildSearchDirs(airJsonDir));
326
+ // Add the provider even if it lacks refreshCache — the main loop
327
+ // below will surface a diagnostic so the user understands why the
328
+ // refresh did not run, instead of the command silently reporting
329
+ // "no providers with cached data found".
330
+ if (provider) {
119
331
  providers.set(scheme, provider);
120
332
  }
121
333
  }
334
+ // Index pre-flight outcomes by scheme so we can prepend the upgrade
335
+ // notice to that scheme's per-call results.
336
+ const upgradeByScheme = new Map();
337
+ for (const outcome of upgradeOutcomes) {
338
+ if (outcome.scheme)
339
+ upgradeByScheme.set(outcome.scheme, outcome);
340
+ }
341
+ // Only schemes with actual cached data on disk are worth reporting.
342
+ // A provider may be listed in air.json extensions without having been
343
+ // used yet, in which case there is nothing to refresh.
122
344
  const results = {};
123
- for (const [scheme, provider] of providers) {
124
- if (!provider.refreshCache)
345
+ for (const scheme of cachedSchemeSet) {
346
+ const provider = providers.get(scheme);
347
+ // Schemes with no loaded provider AND no known package mapping
348
+ // can't be helped — preserve the historical "silently ignore
349
+ // unknown schemes" behavior.
350
+ if (!provider && !KNOWN_PROVIDERS[scheme])
351
+ continue;
352
+ const outcome = upgradeByScheme.get(scheme);
353
+ const notice = outcome ? upgradeNotice(outcome) : null;
354
+ const packageName = KNOWN_PROVIDERS[scheme] ?? `@pulsemcp/air-provider-${scheme}`;
355
+ if (!provider?.refreshCache) {
356
+ // Either no provider exists for this scheme, or auto-heal could
357
+ // not produce one with refreshCache support. Surface a single
358
+ // diagnostic entry so the user knows what to do next.
359
+ const diagnostic = {
360
+ label: scheme,
361
+ updated: false,
362
+ message: provider
363
+ ? `installed provider does not support cache refresh. ` +
364
+ `Try manually: npm install --prefix ${installPrefix} ${packageName}@latest`
365
+ : `no provider installed for "${scheme}://" cached data. ` +
366
+ `Try manually: npm install --prefix ${installPrefix} ${packageName}@latest`,
367
+ };
368
+ results[scheme] = notice ? [notice, diagnostic] : [diagnostic];
125
369
  continue;
126
- results[scheme] = await provider.refreshCache();
370
+ }
371
+ const refreshResults = await provider.refreshCache();
372
+ results[scheme] = notice ? [notice, ...refreshResults] : refreshResults;
127
373
  }
128
374
  return { results };
129
375
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,aAAa,EACb,cAAc,EACd,qBAAqB,GAItB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;GAGG;AACH,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,+BAA+B;CACxC,CAAC;AAYF;;;;GAIG;AACH,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,UAAoB;IAEpB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;QACzD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,CAAC;YAClD,IAAI,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;wBACvD,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;oBACzD,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAqC;IAErC,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;IAExD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,IAAI,UAAU,GAAkB,IAAI,CAAC;IAErC,uDAAuD;IACvD,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,UAAU,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QAE5E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAS,CAAC;YAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAEpC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACvD,IAAI,aAAa,KAAK,UAAU;YAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC;YAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAyC,EAAE,CAAC;IAEzD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,YAAY;YAAE,SAAS;QACrC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EACL,aAAa,EACb,cAAc,EACd,qBAAqB,GAItB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,+BAA+B;CACxC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,qBAAqB,GAA2B;IACpD,+BAA+B,EAAE,QAAQ;CAC1C,CAAC;AA6CF;;;;GAIG;AACH,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,WAAmB,EACnB,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAS,EAAE,CAAS;IAC3C,MAAM,KAAK,GAAG,CAAC,CAAS,EAAY,EAAE,CACpC,CAAC;SACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACb,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CACxE,IAAI,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;IAC5B,QAAQ,CACN,KAAK,EACL;QACE,SAAS;QACT,UAAU;QACV,MAAM;QACN,kBAAkB;QAClB,YAAY;QACZ,WAAW;QACX,UAAU;QACV,GAAG,WAAW,SAAS;KACxB,EACD,EAAE,KAAK,EAAE,MAAM,EAAoC,EACnD,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACvB,IAAI,GAAG,EAAE,CAAC;YACR,aAAa,CAAC;gBACZ,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,WAAmB,EACnB,UAAoB;IAEpB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;YACvD,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;QACzD,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,IAAI,GAAI,GAA6B,EAAE,IAAI,CAAC;YAClD,IAAI,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;wBACvD,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;oBACzD,CAAC;oBAAC,MAAM,CAAC;wBACP,iCAAiC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,OAAQ,GAAG,CAAC,OAAwB,EAAE,QAAQ,IAAI,IAAI,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,UAAyB;IAChD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvD,IAAI,aAAa,KAAK,UAAU;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,yBAAyB,CACtC,cAAwB,EACxB,aAAuB,EACvB,aAAqB,EACrB,mBAAqC;IAErC,sEAAsE;IACtE,oEAAoE;IACpE,+DAA+D;IAC/D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,kEAAkE;QAClE,iCAAiC;QACjC,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,QAAQ,GAAqB,EAAE,CAAC;IAEtC,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,SAAS,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAEnE,4DAA4D;QAC5D,6DAA6D;QAC7D,+DAA+D;QAC/D,kCAAkC;QAClC,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,IAAI,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;YAAE,SAAS;QAE1D,MAAM,MAAM,GACV,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,EAAE,CAAC;QAEL,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE/D,QAAQ,CAAC,IAAI,CAAC;YACZ,WAAW;YACX,MAAM;YACN,SAAS,EAAE,IAAI;YACf,EAAE,EAAE,aAAa,CAAC,EAAE;YACpB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,aAAa,CAAC,MAAM,IAAI,SAAS;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,OAAuB;IAC5C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,QAAQ,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,6BAA6B,MAAM,MAAM,KAAK,EAAE;SAC1D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,WAAW;QAC1B,OAAO,EAAE,KAAK;QACd,OAAO,EACL,yCAAyC;YACzC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAqC;IAErC,MAAM,WAAW,GAAG,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;IAC3C,MAAM,mBAAmB,GACvB,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,CAAC;IAE1D,IAAI,UAAU,GAAkB,IAAI,CAAC;IACrC,IAAI,cAAc,GAAa,EAAE,CAAC;IAClC,IAAI,WAAW,EAAE,CAAC;QAChB,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7C,cAAc,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC9C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAE/C,iEAAiE;IACjE,iEAAiE;IACjE,qEAAqE;IACrE,kEAAkE;IAClE,MAAM,eAAe,GAAG,QAAQ;QAC9B,CAAC,CAAC,MAAM,yBAAyB,CAC7B,cAAc,EACd,aAAa,EACb,aAAa,EACb,mBAAmB,CACpB;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,uDAAuD;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,UAAW,CAAC,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAS,CAAC;YAC/B,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAS;QAEpC,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,WAAW,EACX,eAAe,CAAC,UAAU,CAAC,CAC5B,CAAC;QACF,iEAAiE;QACjE,kEAAkE;QAClE,iEAAiE;QACjE,yCAAyC;QACzC,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,4CAA4C;IAC5C,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC1D,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM;YAAE,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,oEAAoE;IACpE,sEAAsE;IACtE,uDAAuD;IACvD,MAAM,OAAO,GAAyC,EAAE,CAAC;IAEzD,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvC,+DAA+D;QAC/D,6DAA6D;QAC7D,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAAE,SAAS;QAEpD,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,WAAW,GACf,eAAe,CAAC,MAAM,CAAC,IAAI,0BAA0B,MAAM,EAAE,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;YAC5B,gEAAgE;YAChE,8DAA8D;YAC9D,sDAAsD;YACtD,MAAM,UAAU,GAAuB;gBACrC,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,QAAQ;oBACf,CAAC,CAAC,qDAAqD;wBACrD,sCAAsC,aAAa,IAAI,WAAW,SAAS;oBAC7E,CAAC,CAAC,8BAA8B,MAAM,oBAAoB;wBACxD,sCAAsC,aAAa,IAAI,WAAW,SAAS;aAChF,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/D,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulsemcp/air-sdk",
3
- "version": "0.0.26",
3
+ "version": "0.0.28",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -29,7 +29,7 @@
29
29
  "lint": "tsc --noEmit"
30
30
  },
31
31
  "dependencies": {
32
- "@pulsemcp/air-core": "0.0.26"
32
+ "@pulsemcp/air-core": "0.0.28"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.10.0",