@zuplo/cli 6.74.12 → 6.74.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/node_modules/@posthog/core/dist/featureFlagUtils.d.ts +1 -0
  2. package/node_modules/@posthog/core/dist/featureFlagUtils.d.ts.map +1 -1
  3. package/node_modules/@posthog/core/dist/featureFlagUtils.js +31 -0
  4. package/node_modules/@posthog/core/dist/featureFlagUtils.mjs +29 -1
  5. package/node_modules/@posthog/core/dist/index.d.ts +1 -1
  6. package/node_modules/@posthog/core/dist/index.d.ts.map +1 -1
  7. package/node_modules/@posthog/core/dist/index.js +9 -0
  8. package/node_modules/@posthog/core/dist/index.mjs +2 -2
  9. package/node_modules/@posthog/core/dist/utils/index.d.ts +1 -0
  10. package/node_modules/@posthog/core/dist/utils/index.d.ts.map +1 -1
  11. package/node_modules/@posthog/core/dist/utils/index.js +45 -18
  12. package/node_modules/@posthog/core/dist/utils/index.mjs +1 -0
  13. package/node_modules/@posthog/core/dist/utils/json-utils.d.ts +6 -0
  14. package/node_modules/@posthog/core/dist/utils/json-utils.d.ts.map +1 -0
  15. package/node_modules/@posthog/core/dist/utils/json-utils.js +128 -0
  16. package/node_modules/@posthog/core/dist/utils/json-utils.mjs +94 -0
  17. package/node_modules/@posthog/core/package.json +2 -2
  18. package/node_modules/@posthog/core/src/featureFlagUtils.ts +35 -0
  19. package/node_modules/@posthog/core/src/index.ts +1 -0
  20. package/node_modules/@posthog/core/src/utils/index.ts +1 -0
  21. package/node_modules/@posthog/core/src/utils/json-utils.spec.ts +115 -0
  22. package/node_modules/@posthog/core/src/utils/json-utils.ts +148 -0
  23. package/node_modules/@posthog/types/dist/posthog-config.d.ts +25 -1
  24. package/node_modules/@posthog/types/dist/posthog-config.d.ts.map +1 -1
  25. package/node_modules/@posthog/types/dist/posthog.d.ts +4 -0
  26. package/node_modules/@posthog/types/dist/posthog.d.ts.map +1 -1
  27. package/node_modules/@posthog/types/package.json +1 -1
  28. package/node_modules/@posthog/types/src/posthog-config.ts +26 -1
  29. package/node_modules/@posthog/types/src/posthog.ts +4 -0
  30. package/node_modules/@zuplo/core/customer.cli.minified.js +254 -254
  31. package/node_modules/@zuplo/core/index.minified.js +251 -251
  32. package/node_modules/@zuplo/core/package.json +1 -1
  33. package/node_modules/@zuplo/graphql/package.json +1 -1
  34. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  35. package/node_modules/@zuplo/otel/package.json +1 -1
  36. package/node_modules/@zuplo/runtime/out/esm/{chunk-SMQPMERU.js → chunk-4CDML74A.js} +2 -2
  37. package/node_modules/@zuplo/runtime/out/esm/chunk-4POCC75H.js +37 -0
  38. package/node_modules/@zuplo/runtime/out/esm/chunk-4POCC75H.js.map +1 -0
  39. package/node_modules/@zuplo/runtime/out/esm/{chunk-AVDTZRWM.js → chunk-CJFLOF27.js} +2 -2
  40. package/node_modules/@zuplo/runtime/out/esm/{chunk-2UG5Z76T.js → chunk-RAZK5G27.js} +2 -2
  41. package/node_modules/@zuplo/runtime/out/esm/{chunk-VVVYHDCV.js → chunk-XSAN2UKT.js} +54 -54
  42. package/node_modules/@zuplo/runtime/out/esm/{chunk-VVVYHDCV.js.map → chunk-XSAN2UKT.js.map} +1 -1
  43. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  44. package/node_modules/@zuplo/runtime/out/esm/internal/index.js +1 -1
  45. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  46. package/node_modules/@zuplo/runtime/out/esm/mocks/index.js +1 -1
  47. package/node_modules/@zuplo/runtime/out/esm/sdks/aws/index.js +1 -1
  48. package/node_modules/@zuplo/runtime/out/types/index.d.ts +4 -20
  49. package/node_modules/@zuplo/runtime/package.json +1 -1
  50. package/node_modules/express-rate-limit/dist/index.cjs +6 -1
  51. package/node_modules/express-rate-limit/dist/index.mjs +6 -1
  52. package/node_modules/express-rate-limit/package.json +6 -6
  53. package/node_modules/tar/dist/commonjs/index.min.js +1 -1
  54. package/node_modules/tar/dist/commonjs/index.min.js.map +3 -3
  55. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -1
  56. package/node_modules/tar/dist/commonjs/list.js +10 -2
  57. package/node_modules/tar/dist/commonjs/list.js.map +1 -1
  58. package/node_modules/tar/dist/commonjs/options.d.ts +1 -1
  59. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -1
  60. package/node_modules/tar/dist/commonjs/options.js.map +1 -1
  61. package/node_modules/tar/dist/esm/index.min.js +2 -2
  62. package/node_modules/tar/dist/esm/index.min.js.map +3 -3
  63. package/node_modules/tar/dist/esm/list.d.ts.map +1 -1
  64. package/node_modules/tar/dist/esm/list.js +10 -2
  65. package/node_modules/tar/dist/esm/list.js.map +1 -1
  66. package/node_modules/tar/dist/esm/options.d.ts +1 -1
  67. package/node_modules/tar/dist/esm/options.d.ts.map +1 -1
  68. package/node_modules/tar/dist/esm/options.js.map +1 -1
  69. package/node_modules/tar/package.json +1 -1
  70. package/node_modules/undici/lib/core/request.js +12 -1
  71. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  72. package/node_modules/undici/lib/handler/retry-handler.js +34 -0
  73. package/node_modules/undici/lib/web/cookies/util.js +79 -9
  74. package/node_modules/undici/package.json +1 -1
  75. package/package.json +8 -8
  76. package/node_modules/@zuplo/runtime/out/esm/chunk-7AMMYBFQ.js +0 -37
  77. package/node_modules/@zuplo/runtime/out/esm/chunk-7AMMYBFQ.js.map +0 -1
  78. /package/node_modules/@zuplo/runtime/out/esm/{chunk-SMQPMERU.js.map → chunk-4CDML74A.js.map} +0 -0
  79. /package/node_modules/@zuplo/runtime/out/esm/{chunk-7AMMYBFQ.js.LEGAL.txt → chunk-4POCC75H.js.LEGAL.txt} +0 -0
  80. /package/node_modules/@zuplo/runtime/out/esm/{chunk-AVDTZRWM.js.map → chunk-CJFLOF27.js.map} +0 -0
  81. /package/node_modules/@zuplo/runtime/out/esm/{chunk-2UG5Z76T.js.map → chunk-RAZK5G27.js.map} +0 -0
  82. /package/node_modules/@zuplo/runtime/out/esm/{chunk-VVVYHDCV.js.LEGAL.txt → chunk-XSAN2UKT.js.LEGAL.txt} +0 -0
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{b as l}from"../chunk-2UG5Z76T.js";import{_ as n}from"../chunk-7AMMYBFQ.js";import{a as o}from"../chunk-TYV53J3B.js";function g(u={request:new Request("https://api.example.com")}){let e=[];function t(r){e.push(Promise.resolve(r))}return o(t,"waitUntil"),{context:new s({event:{waitUntil:t},route:u.route}),invokeResponse:o(async()=>{await Promise.all(e)},"invokeResponse")}}o(g,"createMockContext");var a={path:"/",methods:["GET"],handler:{module:{},export:"default"},raw:o(()=>({}),"raw")},s=class extends EventTarget{static{o(this,"MockZuploContext")}#e;contextId;requestId;log;route;custom;incomingRequestProperties;parentContext;analyticsContext;constructor({event:e,route:t=a,parentContext:i}){super(),this.requestId=crypto.randomUUID(),this.contextId=crypto.randomUUID(),this.log={info:n.console.info,log:n.console.log,debug:n.console.debug,warn:n.console.warn,error:n.console.error,setLogProperties:o(()=>{},"setLogProperties")},this.custom={},this.route=t,this.incomingRequestProperties={ip:"203.0.113.7",asn:1234,asOrganization:"ORGANIZATION",city:"Seattle",region:"Washington",regionCode:"WA",colo:"SEA",continent:"NA",country:"US",postalCode:"98004",metroCode:"SEA",latitude:void 0,longitude:void 0,timezone:void 0,httpProtocol:void 0,clientCert:void 0,clientMtlsVerificationStatus:void 0,clientMtlsVerificationReason:void 0,clientCertFingerprintSha256:void 0,clientCertNotBefore:void 0,clientCertNotAfter:void 0,clientCertIssuerDn:void 0,clientCertSubjectDn:void 0},this.parentContext=i,this.#e=e,this.analyticsContext=new l(this.requestId)}waitUntil(e){this.#e.waitUntil(e)}invokeInboundPolicy(e,t){throw new Error("Not implemented")}invokeOutboundPolicy(e,t,i){throw new Error("Not implemented")}invokeRoute(e,t){throw new Error("Not implemented")}addResponseSendingHook(e){throw new Error("Not implemented")}addResponseSendingFinalHook(e){throw new Error("Not implemented")}addEventListener(e,t,i){let d=o(r=>{try{typeof t=="function"?t(r):t.handleEvent(r)}catch(p){throw this.log.error(`Error invoking event ${e}. See following logs for details.`),p}},"wrapped");super.addEventListener(e,d,i)}};export{s as MockZuploContext,g as createMockContext};
25
+ import{b as l}from"../chunk-RAZK5G27.js";import{_ as n}from"../chunk-4POCC75H.js";import{a as o}from"../chunk-TYV53J3B.js";function g(u={request:new Request("https://api.example.com")}){let e=[];function t(r){e.push(Promise.resolve(r))}return o(t,"waitUntil"),{context:new s({event:{waitUntil:t},route:u.route}),invokeResponse:o(async()=>{await Promise.all(e)},"invokeResponse")}}o(g,"createMockContext");var a={path:"/",methods:["GET"],handler:{module:{},export:"default"},raw:o(()=>({}),"raw")},s=class extends EventTarget{static{o(this,"MockZuploContext")}#e;contextId;requestId;log;route;custom;incomingRequestProperties;parentContext;analyticsContext;constructor({event:e,route:t=a,parentContext:i}){super(),this.requestId=crypto.randomUUID(),this.contextId=crypto.randomUUID(),this.log={info:n.console.info,log:n.console.log,debug:n.console.debug,warn:n.console.warn,error:n.console.error,setLogProperties:o(()=>{},"setLogProperties")},this.custom={},this.route=t,this.incomingRequestProperties={ip:"203.0.113.7",asn:1234,asOrganization:"ORGANIZATION",city:"Seattle",region:"Washington",regionCode:"WA",colo:"SEA",continent:"NA",country:"US",postalCode:"98004",metroCode:"SEA",latitude:void 0,longitude:void 0,timezone:void 0,httpProtocol:void 0,clientCert:void 0,clientMtlsVerificationStatus:void 0,clientMtlsVerificationReason:void 0,clientCertFingerprintSha256:void 0,clientCertNotBefore:void 0,clientCertNotAfter:void 0,clientCertIssuerDn:void 0,clientCertSubjectDn:void 0},this.parentContext=i,this.#e=e,this.analyticsContext=new l(this.requestId)}waitUntil(e){this.#e.waitUntil(e)}invokeInboundPolicy(e,t){throw new Error("Not implemented")}invokeOutboundPolicy(e,t,i){throw new Error("Not implemented")}invokeRoute(e,t){throw new Error("Not implemented")}addResponseSendingHook(e){throw new Error("Not implemented")}addResponseSendingFinalHook(e){throw new Error("Not implemented")}addEventListener(e,t,i){let d=o(r=>{try{typeof t=="function"?t(r):t.handleEvent(r)}catch(p){throw this.log.error(`Error invoking event ${e}. See following logs for details.`),p}},"wrapped");super.addEventListener(e,d,i)}};export{s as MockZuploContext,g as createMockContext};
26
26
  //# sourceMappingURL=index.js.map
@@ -22,5 +22,5 @@
22
22
  * DEALINGS IN THE SOFTWARE.
23
23
  *--------------------------------------------------------------------------------------------*/
24
24
 
25
- import{H as a,I as l,J as c,K as o,N as p,O as y,P as m}from"../../chunk-SMQPMERU.js";import"../../chunk-UKQQD2JN.js";import"../../chunk-7AMMYBFQ.js";import{a as i}from"../../chunk-TYV53J3B.js";async function g(r,e){let t=typeof e.credentials=="function"?await e.credentials():e.credentials,n=r.method,d=n!=="GET"&&n!=="HEAD"&&r.body!=null?await r.arrayBuffer():null,s=await new o({method:n,url:r.url,headers:r.headers,body:d,accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken,service:e.service,region:e.region,signQuery:e.signQuery}).sign();return new Request(s.url.toString(),{method:s.method,headers:s.headers,body:s.body})}i(g,"signRequest");export{c as AwsClient,o as AwsV4Signer,p as fromTemporaryCredentials,y as fromWebToken,m as fromZuploIdentity,l as getAwsCredentialProvider,a as setAwsCredentialProvider,g as signRequest};
25
+ import{H as a,I as l,J as c,K as o,N as p,O as y,P as m}from"../../chunk-4CDML74A.js";import"../../chunk-UKQQD2JN.js";import"../../chunk-4POCC75H.js";import{a as i}from"../../chunk-TYV53J3B.js";async function g(r,e){let t=typeof e.credentials=="function"?await e.credentials():e.credentials,n=r.method,d=n!=="GET"&&n!=="HEAD"&&r.body!=null?await r.arrayBuffer():null,s=await new o({method:n,url:r.url,headers:r.headers,body:d,accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken,service:e.service,region:e.region,signQuery:e.signQuery}).sign();return new Request(s.url.toString(),{method:s.method,headers:s.headers,body:s.body})}i(g,"signRequest");export{c as AwsClient,o as AwsV4Signer,p as fromTemporaryCredentials,y as fromWebToken,m as fromZuploIdentity,l as getAwsCredentialProvider,a as setAwsCredentialProvider,g as signRequest};
26
26
  //# sourceMappingURL=index.js.map
@@ -1669,23 +1669,6 @@ export declare interface ApiKeyConsumerClientOptions {
1669
1669
  *
1670
1670
  * @example
1671
1671
  * ```json
1672
- * // policies.json - API key authentication using bucketName (legacy)
1673
- * {
1674
- * "name": "api-key-auth",
1675
- * "policyType": "api-key-inbound",
1676
- * "handler": {
1677
- * "export": "ApiKeyInboundPolicy",
1678
- * "module": "$import(@zuplo/runtime)",
1679
- * "options": {
1680
- * "bucketName": "$env(API_KEY_BUCKET)",
1681
- * "cacheTtlSeconds": 300
1682
- * }
1683
- * }
1684
- * }
1685
- * ```
1686
- *
1687
- * @example
1688
- * ```json
1689
1672
  * // Custom header and auth scheme
1690
1673
  * {
1691
1674
  * "handler": {
@@ -1722,7 +1705,7 @@ export declare interface ApiKeyConsumerClientOptions {
1722
1705
  export declare function ApiKeyInboundPolicy(
1723
1706
  request: ZuploRequest,
1724
1707
  context: ZuploContext,
1725
- unparsedOptions: ApiKeyInboundPolicyOptions,
1708
+ unparsedOptions: ApiKeyInboundPolicyOptions | undefined,
1726
1709
  policyName: string
1727
1710
  ): Promise<Response | ZuploRequest<RequestGeneric_2>>;
1728
1711
 
@@ -1744,11 +1727,12 @@ export declare interface ApiKeyInboundPolicyOptions {
1744
1727
  */
1745
1728
  authScheme?: string;
1746
1729
  /**
1747
- * The ID of the API Key service bucket. Preferred over bucketName. Defaults to the autogenerated bucket ID for your project.
1730
+ * The ID of the API Key service bucket. Defaults to the autogenerated bucket ID for your project.
1748
1731
  */
1749
1732
  bucketId?: string;
1750
1733
  /**
1751
- * The name of the API Key service bucket. Defaults to the autogenerated bucket name for your project.
1734
+ * @deprecated
1735
+ * **Deprecated**: Use `bucketId` instead. The name of the API Key service bucket.
1752
1736
  */
1753
1737
  bucketName?: string;
1754
1738
  /**
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zuplo/runtime",
3
3
  "type": "module",
4
- "version": "6.74.12",
4
+ "version": "6.74.15",
5
5
  "repository": "https://github.com/zuplo/zuplo",
6
6
  "author": "Zuplo, Inc.",
7
7
  "exports": {
@@ -44,10 +44,15 @@ module.exports = __toCommonJS(index_exports);
44
44
  // source/ip-key-generator.ts
45
45
  var import_node_net = require("node:net");
46
46
  var import_ip_address = require("ip-address");
47
+ var ipv4CompatibleSubnet = new import_ip_address.Address6("::/96");
47
48
  function ipKeyGenerator(ip, ipv6Subnet = 56) {
48
49
  if ((0, import_node_net.isIPv6)(ip)) {
49
50
  const address = new import_ip_address.Address6(ip);
50
- if (address.is4()) return address.to4().correctForm();
51
+ if (address.isMapped4() || // The deprecated IPv4-compatible notation keeps its existing behavior.
52
+ // Its range is shared with addresses that embed no IPv4 address at all
53
+ // (`::`, `::1`), so here the notation is what tells them apart.
54
+ address.is4() && address.isInSubnet(ipv4CompatibleSubnet))
55
+ return address.to4().correctForm();
51
56
  if (ipv6Subnet) {
52
57
  const subnet = new import_ip_address.Address6(`${ip}/${ipv6Subnet}`);
53
58
  return subnet.networkForm();
@@ -1,10 +1,15 @@
1
1
  // source/ip-key-generator.ts
2
2
  import { isIPv6 } from "node:net";
3
3
  import { Address6 } from "ip-address";
4
+ var ipv4CompatibleSubnet = new Address6("::/96");
4
5
  function ipKeyGenerator(ip, ipv6Subnet = 56) {
5
6
  if (isIPv6(ip)) {
6
7
  const address = new Address6(ip);
7
- if (address.is4()) return address.to4().correctForm();
8
+ if (address.isMapped4() || // The deprecated IPv4-compatible notation keeps its existing behavior.
9
+ // Its range is shared with addresses that embed no IPv4 address at all
10
+ // (`::`, `::1`), so here the notation is what tells them apart.
11
+ address.is4() && address.isInSubnet(ipv4CompatibleSubnet))
12
+ return address.to4().correctForm();
8
13
  if (ipv6Subnet) {
9
14
  const subnet = new Address6(`${ip}/${ipv6Subnet}`);
10
15
  return subnet.networkForm();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "express-rate-limit",
3
- "version": "8.6.1",
3
+ "version": "8.6.2",
4
4
  "description": "Basic IP rate-limiting middleware for Express. Use to limit repeated requests to public APIs and/or endpoints such as password reset.",
5
5
  "author": {
6
6
  "name": "Nathan Friedly",
@@ -90,7 +90,7 @@
90
90
  "@types/debug": "4.1.13",
91
91
  "@types/express": "5.0.6",
92
92
  "@types/jest": "30.0.0",
93
- "@types/node": "26.1.1",
93
+ "@types/node": "26.1.2",
94
94
  "@types/supertest": "7.2.1",
95
95
  "del-cli": "7.0.0",
96
96
  "dts-bundle-generator": "8.1.2",
@@ -98,13 +98,13 @@
98
98
  "express": "5.2.1",
99
99
  "husky": "9.1.7",
100
100
  "jest": "30.4.2",
101
- "lint-staged": "17.1.0",
102
- "mintlify": "4.2.715",
101
+ "lint-staged": "17.2.0",
102
+ "mintlify": "4.2.743",
103
103
  "npm-run-all": "4.1.5",
104
- "prettier": "3.9.5",
104
+ "prettier": "3.9.6",
105
105
  "ratelimit-header-parser": "0.1.0",
106
106
  "supertest": "7.2.2",
107
- "ts-jest": "29.4.11",
107
+ "ts-jest": "29.4.12",
108
108
  "ts-node": "10.9.2",
109
109
  "typescript": "5.9.3"
110
110
  },