diff --git a/package.json b/package.json index dfb320e..1c4b1c8 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@git.zone/tsbuild": "^2.6.8", "@git.zone/tsbundle": "^2.5.1", "@git.zone/tsrun": "^1.3.3", - "@git.zone/tstest": "^2.3.8", + "@git.zone/tstest": "^2.4.1", "@push.rocks/qenv": "^6.1.3", "@push.rocks/tapbundle": "^6.0.3", "@types/node": "^22.12.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddb1ae2..4f74cce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,8 +22,8 @@ importers: specifier: ^1.3.3 version: 1.3.3 '@git.zone/tstest': - specifier: ^2.3.8 - version: 2.3.8(@aws-sdk/credential-providers@3.734.0)(socks@2.8.7)(typescript@5.9.2) + specifier: ^2.4.1 + version: 2.4.1(@aws-sdk/credential-providers@3.734.0)(socks@2.8.7)(typescript@5.9.2) '@push.rocks/qenv': specifier: ^6.1.3 version: 6.1.3 @@ -317,8 +317,8 @@ packages: '@borewit/text-codec@0.1.1': resolution: {integrity: sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==} - '@cloudflare/workers-types@4.20251004.0': - resolution: {integrity: sha512-FkTBHEyOBwphbW4SLQ2XLCgNntD2wz0v1Si7NwJeN0JAPW/39/w6zhsKy3rsh+203tuSfBgsoP34+Os4RaySOw==} + '@cloudflare/workers-types@4.20251008.0': + resolution: {integrity: sha512-dZLkO4PbCL0qcCSKzuW7KE4GYe49lI12LCfQ5y9XeSwgYBoAUbwH4gmJ6A0qUIURiTJTkGkRkhVPqpq2XNgYRA==} '@colors/colors@1.6.0': resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} @@ -667,8 +667,8 @@ packages: resolution: {integrity: sha512-DDzWunkxXLtXJTxBf4EioXLwhuqdA2VzdTmOzWrw4Z4Qnms/YM67q36yajwNohAajPYyRz5DayU0ikrceFXyVw==} hasBin: true - '@git.zone/tstest@2.3.8': - resolution: {integrity: sha512-rt7rpR2UwzHXjpqquEvWG4LfzGOGeI6lcR2YyO8pc7lqjhH+xsuaWPUQ5IwFl4Vw4VnR9ZoHBCqkjvxF8ow1wQ==} + '@git.zone/tstest@2.4.1': + resolution: {integrity: sha512-kOZQbqAHSlskQ24LA2QlhHn8ac//VUIP3hYkga4ZuWgmReJ730ZZ8yYsiSU3sZB0alC/YZPirvM7JRHKH1/xww==} hasBin: true '@hapi/bourne@3.0.0': @@ -839,8 +839,8 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@puppeteer/browsers@2.10.10': - resolution: {integrity: sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==} + '@puppeteer/browsers@2.10.11': + resolution: {integrity: sha512-kp3ORGce+oC3qUMJ+g5NH9W4Q7mMG7gV2I+alv0bCbfkZ36B2V/xKCg9uYavSgjmsElhwBneahWjJP7A6fuKLw==} engines: {node: '>=18'} hasBin: true @@ -1312,6 +1312,10 @@ packages: resolution: {integrity: sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA==} engines: {node: '>=18.0.0'} + '@smithy/core@3.15.0': + resolution: {integrity: sha512-VJWncXgt+ExNn0U2+Y7UywuATtRYaodGQKFo9mDyh70q+fJGedfrqi2XuKU1BhiLeXgg6RZrW7VEKfeqFhHAJA==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.2.0': resolution: {integrity: sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big==} engines: {node: '>=18.0.0'} @@ -1340,6 +1344,10 @@ packages: resolution: {integrity: sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw==} engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.3.1': + resolution: {integrity: sha512-3AvYYbB+Dv5EPLqnJIAgYw/9+WzeBiUYS8B+rU0pHq5NMQMvrZmevUROS4V2GAt0jEOn9viBzPLrZE+riTNd5Q==} + engines: {node: '>=18.0.0'} + '@smithy/hash-blob-browser@4.2.0': resolution: {integrity: sha512-MWmrRTPqVKpN8NmxmJPTeQuhewTt8Chf+waB38LXHZoA02+BeWYVQ9ViAwHjug8m7lQb1UWuGqp3JoGDOWvvuA==} engines: {node: '>=18.0.0'} @@ -1376,10 +1384,18 @@ packages: resolution: {integrity: sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw==} engines: {node: '>=18.0.0'} + '@smithy/middleware-endpoint@4.3.1': + resolution: {integrity: sha512-JtM4SjEgImLEJVXdsbvWHYiJ9dtuKE8bqLlvkvGi96LbejDL6qnVpVxEFUximFodoQbg0Gnkyff9EKUhFhVJFw==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.4.0': resolution: {integrity: sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg==} engines: {node: '>=18.0.0'} + '@smithy/middleware-retry@4.4.1': + resolution: {integrity: sha512-wXxS4ex8cJJteL0PPQmWYkNi9QKDWZIpsndr0wZI2EL+pSSvA/qqxXU60gBOJoIc2YgtZSWY/PE86qhKCCKP1w==} + engines: {node: '>=18.0.0'} + '@smithy/middleware-serde@4.2.0': resolution: {integrity: sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw==} engines: {node: '>=18.0.0'} @@ -1428,6 +1444,10 @@ packages: resolution: {integrity: sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ==} engines: {node: '>=18.0.0'} + '@smithy/smithy-client@4.7.1': + resolution: {integrity: sha512-WXVbiyNf/WOS/RHUoFMkJ6leEVpln5ojCjNBnzoZeMsnCg3A0BRhLK3WYc4V7PmYcYPZh9IYzzAg9XcNSzYxYQ==} + engines: {node: '>=18.0.0'} + '@smithy/types@4.6.0': resolution: {integrity: sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==} engines: {node: '>=18.0.0'} @@ -1440,6 +1460,10 @@ packages: resolution: {integrity: sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA==} engines: {node: '>=18.0.0'} + '@smithy/util-base64@4.3.0': + resolution: {integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-body-length-browser@4.2.0': resolution: {integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==} engines: {node: '>=18.0.0'} @@ -1448,6 +1472,10 @@ packages: resolution: {integrity: sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ==} engines: {node: '>=18.0.0'} + '@smithy/util-body-length-node@4.2.1': + resolution: {integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==} + engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -1464,10 +1492,18 @@ packages: resolution: {integrity: sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-browser@4.3.0': + resolution: {integrity: sha512-H4MAj8j8Yp19Mr7vVtGgi7noJjvjJbsKQJkvNnLlrIFduRFT5jq5Eri1k838YW7rN2g5FTnXpz5ktKVr1KVgPQ==} + engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.0': resolution: {integrity: sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg==} engines: {node: '>=18.0.0'} + '@smithy/util-defaults-mode-node@4.2.1': + resolution: {integrity: sha512-PuDcgx7/qKEMzV1QFHJ7E4/MMeEjaA7+zS5UNcHCLPvvn59AeZQ0DSDGMpqC2xecfa/1cNGm4l8Ec/VxCuY7Ug==} + engines: {node: '>=18.0.0'} + '@smithy/util-endpoints@3.2.0': resolution: {integrity: sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg==} engines: {node: '>=18.0.0'} @@ -1488,6 +1524,10 @@ packages: resolution: {integrity: sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg==} engines: {node: '>=18.0.0'} + '@smithy/util-stream@4.5.0': + resolution: {integrity: sha512-0TD5M5HCGu5diEvZ/O/WquSjhJPasqv7trjoqHyWjNh/FBeBl7a0ztl9uFMOsauYtRfd8jvpzIAQhDHbx+nvZw==} + engines: {node: '>=18.0.0'} + '@smithy/util-uri-escape@4.2.0': resolution: {integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==} engines: {node: '>=18.0.0'} @@ -1908,8 +1948,16 @@ packages: bare-events@2.7.0: resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==} - bare-fs@4.4.5: - resolution: {integrity: sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==} + bare-events@2.8.0: + resolution: {integrity: sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.4.10: + resolution: {integrity: sha512-arqVF+xX/rJHwrONZaSPhlzleT2gXwVs9rsAe1p1mIVwWZI2A76/raio+KwwxfWMO8oV9Wo90EaUkS2QwVmy4w==} engines: {bare: '>=1.16.0'} peerDependencies: bare-buffer: '*' @@ -2505,8 +2553,8 @@ packages: resolution: {integrity: sha512-cB507r5T3D55DfclY01GLkninZLfU7HXV/mhVRTnTRm5k2u+fY7Fof2dBkr80p5t7G7dlA/G5dI87QiMdPpMCQ==} engines: {node: '>=18'} - fake-indexeddb@6.2.2: - resolution: {integrity: sha512-SGbf7fzjeHz3+12NO1dYigcYn4ivviaeULV5yY5rdGihBvvgwMds4r4UBbNIUMwkze57KTDm32rq3j1Az8mzEw==} + fake-indexeddb@6.2.3: + resolution: {integrity: sha512-idzJXFtDIHNShFZ9ssS8IdsRgAP0t9zwWvSdCKsWK2dgh2xcXA6/2Oteaxar5GJqmwzZXCrKRO6F5IEiR4yJzw==} engines: {node: '>=18'} fast-deep-equal@3.1.3: @@ -3748,12 +3796,12 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@24.23.0: - resolution: {integrity: sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==} + puppeteer-core@24.24.0: + resolution: {integrity: sha512-RR5AeQ6dIbSepDe9PTtfgK1fgD7TuA9qqyGxPbFCyGfvfkbR7MiqNYdE7AhbTaFIqG3hFBtWwbVKVZF8oEqj7Q==} engines: {node: '>=18'} - puppeteer@24.23.0: - resolution: {integrity: sha512-BVR1Lg8sJGKXY79JARdIssFWK2F6e1j+RyuJP66w4CUmpaXjENicmA3nNpUXA8lcTdDjAndtP+oNdni3T/qQqA==} + puppeteer@24.24.0: + resolution: {integrity: sha512-jRn6T8rSrQZXIplXICpH2zYJ2XrIFY7Ug0+TxRTuwY8ZTL7+MKDvFH0aLG7Xx3ts4twzxIKZmiYo+qg7whNpZw==} engines: {node: '>=18'} hasBin: true @@ -3929,6 +3977,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@1.2.0: resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} engines: {node: '>= 18'} @@ -4477,7 +4530,7 @@ snapshots: '@api.global/typedrequest': 3.1.10 '@api.global/typedrequest-interfaces': 3.0.19 '@api.global/typedsocket': 3.0.1 - '@cloudflare/workers-types': 4.20251004.0 + '@cloudflare/workers-types': 4.20251008.0 '@design.estate/dees-comms': 1.0.27 '@push.rocks/lik': 6.2.2 '@push.rocks/smartchok': 1.1.1 @@ -4600,26 +4653,26 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0 '@smithy/config-resolver': 4.3.0 - '@smithy/core': 3.14.0 - '@smithy/fetch-http-handler': 5.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 '@smithy/hash-node': 4.2.0 '@smithy/invalid-dependency': 4.2.0 '@smithy/middleware-content-length': 4.2.0 - '@smithy/middleware-endpoint': 4.3.0 - '@smithy/middleware-retry': 4.4.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 '@smithy/middleware-serde': 4.2.0 '@smithy/middleware-stack': 4.2.0 '@smithy/node-config-provider': 4.3.0 '@smithy/node-http-handler': 4.3.0 '@smithy/protocol-http': 5.3.0 - '@smithy/smithy-client': 4.7.0 + '@smithy/smithy-client': 4.7.1 '@smithy/types': 4.6.0 '@smithy/url-parser': 4.2.0 - '@smithy/util-base64': 4.2.0 + '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.0 - '@smithy/util-defaults-mode-browser': 4.2.0 - '@smithy/util-defaults-mode-node': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 '@smithy/util-endpoints': 3.2.0 '@smithy/util-middleware': 4.2.0 '@smithy/util-retry': 4.2.0 @@ -4706,26 +4759,26 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0 '@smithy/config-resolver': 4.3.0 - '@smithy/core': 3.14.0 - '@smithy/fetch-http-handler': 5.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 '@smithy/hash-node': 4.2.0 '@smithy/invalid-dependency': 4.2.0 '@smithy/middleware-content-length': 4.2.0 - '@smithy/middleware-endpoint': 4.3.0 - '@smithy/middleware-retry': 4.4.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 '@smithy/middleware-serde': 4.2.0 '@smithy/middleware-stack': 4.2.0 '@smithy/node-config-provider': 4.3.0 '@smithy/node-http-handler': 4.3.0 '@smithy/protocol-http': 5.3.0 - '@smithy/smithy-client': 4.7.0 + '@smithy/smithy-client': 4.7.1 '@smithy/types': 4.6.0 '@smithy/url-parser': 4.2.0 - '@smithy/util-base64': 4.2.0 + '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.0 - '@smithy/util-defaults-mode-browser': 4.2.0 - '@smithy/util-defaults-mode-node': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 '@smithy/util-endpoints': 3.2.0 '@smithy/util-middleware': 4.2.0 '@smithy/util-retry': 4.2.0 @@ -4781,12 +4834,12 @@ snapshots: '@aws-sdk/core@3.734.0': dependencies: '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.14.0 + '@smithy/core': 3.15.0 '@smithy/node-config-provider': 4.3.0 '@smithy/property-provider': 4.2.0 '@smithy/protocol-http': 5.3.0 '@smithy/signature-v4': 5.3.0 - '@smithy/smithy-client': 4.7.0 + '@smithy/smithy-client': 4.7.1 '@smithy/types': 4.6.0 '@smithy/util-middleware': 4.2.0 fast-xml-parser: 4.4.1 @@ -4841,13 +4894,13 @@ snapshots: dependencies: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.3.0 + '@smithy/fetch-http-handler': 5.3.1 '@smithy/node-http-handler': 4.3.0 '@smithy/property-provider': 4.2.0 '@smithy/protocol-http': 5.3.0 - '@smithy/smithy-client': 4.7.0 + '@smithy/smithy-client': 4.7.1 '@smithy/types': 4.6.0 - '@smithy/util-stream': 4.4.0 + '@smithy/util-stream': 4.5.0 tslib: 2.8.1 optional: true @@ -5020,7 +5073,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity': 3.734.0 '@aws-sdk/nested-clients': 3.734.0 '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.14.0 + '@smithy/core': 3.15.0 '@smithy/credential-provider-imds': 4.2.0 '@smithy/property-provider': 4.2.0 '@smithy/types': 4.6.0 @@ -5140,7 +5193,7 @@ snapshots: '@aws-sdk/core': 3.734.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.734.0 - '@smithy/core': 3.14.0 + '@smithy/core': 3.15.0 '@smithy/protocol-http': 5.3.0 '@smithy/types': 4.6.0 tslib: 2.8.1 @@ -5171,26 +5224,26 @@ snapshots: '@aws-sdk/util-user-agent-browser': 3.734.0 '@aws-sdk/util-user-agent-node': 3.734.0 '@smithy/config-resolver': 4.3.0 - '@smithy/core': 3.14.0 - '@smithy/fetch-http-handler': 5.3.0 + '@smithy/core': 3.15.0 + '@smithy/fetch-http-handler': 5.3.1 '@smithy/hash-node': 4.2.0 '@smithy/invalid-dependency': 4.2.0 '@smithy/middleware-content-length': 4.2.0 - '@smithy/middleware-endpoint': 4.3.0 - '@smithy/middleware-retry': 4.4.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-retry': 4.4.1 '@smithy/middleware-serde': 4.2.0 '@smithy/middleware-stack': 4.2.0 '@smithy/node-config-provider': 4.3.0 '@smithy/node-http-handler': 4.3.0 '@smithy/protocol-http': 5.3.0 - '@smithy/smithy-client': 4.7.0 + '@smithy/smithy-client': 4.7.1 '@smithy/types': 4.6.0 '@smithy/url-parser': 4.2.0 - '@smithy/util-base64': 4.2.0 + '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 - '@smithy/util-body-length-node': 4.2.0 - '@smithy/util-defaults-mode-browser': 4.2.0 - '@smithy/util-defaults-mode-node': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.0 + '@smithy/util-defaults-mode-node': 4.2.1 '@smithy/util-endpoints': 3.2.0 '@smithy/util-middleware': 4.2.0 '@smithy/util-retry': 4.2.0 @@ -5384,7 +5437,7 @@ snapshots: '@borewit/text-codec@0.1.1': {} - '@cloudflare/workers-types@4.20251004.0': {} + '@cloudflare/workers-types@4.20251008.0': {} '@colors/colors@1.6.0': {} @@ -5678,7 +5731,7 @@ snapshots: '@push.rocks/smartshell': 3.2.2 tsx: 4.19.2 - '@git.zone/tstest@2.3.8(@aws-sdk/credential-providers@3.734.0)(socks@2.8.7)(typescript@5.9.2)': + '@git.zone/tstest@2.4.1(@aws-sdk/credential-providers@3.734.0)(socks@2.8.7)(typescript@5.9.2)': dependencies: '@api.global/typedserver': 3.0.79 '@git.zone/tsbundle': 2.5.1 @@ -5711,6 +5764,7 @@ snapshots: - '@nuxt/kit' - '@swc/helpers' - aws-crt + - bare-abort-controller - bare-buffer - bufferutil - gcp-metadata @@ -5995,16 +6049,17 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@puppeteer/browsers@2.10.10': + '@puppeteer/browsers@2.10.11': dependencies: debug: 4.4.3 extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 - semver: 7.7.2 + semver: 7.7.3 tar-fs: 3.1.1 yargs: 17.7.2 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - react-native-b4a - supports-color @@ -6122,6 +6177,7 @@ snapshots: '@push.rocks/smartpuppeteer': 2.0.5(typescript@5.9.2) '@push.rocks/smartunique': 3.0.9 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -6452,7 +6508,7 @@ snapshots: '@design.estate/dees-element': 2.1.2 '@happy-dom/global-registrator': 15.11.7 '@push.rocks/smartpromise': 4.2.3 - fake-indexeddb: 6.2.2 + fake-indexeddb: 6.2.3 transitivePeerDependencies: - '@nuxt/kit' - react @@ -6490,6 +6546,7 @@ snapshots: pdf-lib: 1.17.1 pdf2json: 3.2.0 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -6510,9 +6567,10 @@ snapshots: dependencies: '@push.rocks/smartdelay': 3.0.5 '@push.rocks/smartshell': 3.3.0 - puppeteer: 24.23.0(typescript@5.9.2) + puppeteer: 24.24.0(typescript@5.9.2) tree-kill: 1.2.2 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -6719,16 +6777,19 @@ snapshots: transitivePeerDependencies: - '@aws-sdk/credential-providers' - '@mongodb-js/zstd' + - '@nuxt/kit' - aws-crt - bufferutil - gcp-metadata - kerberos - mongodb-client-encryption + - react - react-native-b4a - snappy - socks - supports-color - utf-8-validate + - vue '@push.rocks/taskbuffer@3.4.0': dependencies: @@ -6957,6 +7018,20 @@ snapshots: '@smithy/uuid': 1.1.0 tslib: 2.8.1 + '@smithy/core@3.15.0': + dependencies: + '@smithy/middleware-serde': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-stream': 4.5.0 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + optional: true + '@smithy/credential-provider-imds@4.2.0': dependencies: '@smithy/node-config-provider': 4.3.0 @@ -7003,6 +7078,15 @@ snapshots: '@smithy/util-base64': 4.2.0 tslib: 2.8.1 + '@smithy/fetch-http-handler@5.3.1': + dependencies: + '@smithy/protocol-http': 5.3.0 + '@smithy/querystring-builder': 4.2.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + optional: true + '@smithy/hash-blob-browser@4.2.0': dependencies: '@smithy/chunked-blob-reader': 5.2.0 @@ -7059,6 +7143,18 @@ snapshots: '@smithy/util-middleware': 4.2.0 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.3.1': + dependencies: + '@smithy/core': 3.15.0 + '@smithy/middleware-serde': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/shared-ini-file-loader': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/url-parser': 4.2.0 + '@smithy/util-middleware': 4.2.0 + tslib: 2.8.1 + optional: true + '@smithy/middleware-retry@4.4.0': dependencies: '@smithy/node-config-provider': 4.3.0 @@ -7071,6 +7167,19 @@ snapshots: '@smithy/uuid': 1.1.0 tslib: 2.8.1 + '@smithy/middleware-retry@4.4.1': + dependencies: + '@smithy/node-config-provider': 4.3.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/service-error-classification': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + '@smithy/util-middleware': 4.2.0 + '@smithy/util-retry': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + optional: true + '@smithy/middleware-serde@4.2.0': dependencies: '@smithy/protocol-http': 5.3.0 @@ -7148,6 +7257,17 @@ snapshots: '@smithy/util-stream': 4.4.0 tslib: 2.8.1 + '@smithy/smithy-client@4.7.1': + dependencies: + '@smithy/core': 3.15.0 + '@smithy/middleware-endpoint': 4.3.1 + '@smithy/middleware-stack': 4.2.0 + '@smithy/protocol-http': 5.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-stream': 4.5.0 + tslib: 2.8.1 + optional: true + '@smithy/types@4.6.0': dependencies: tslib: 2.8.1 @@ -7164,6 +7284,13 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 + '@smithy/util-base64@4.3.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + optional: true + '@smithy/util-body-length-browser@4.2.0': dependencies: tslib: 2.8.1 @@ -7172,6 +7299,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/util-body-length-node@4.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -7194,6 +7326,14 @@ snapshots: bowser: 2.12.1 tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.3.0': + dependencies: + '@smithy/property-provider': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + optional: true + '@smithy/util-defaults-mode-node@4.2.0': dependencies: '@smithy/config-resolver': 4.3.0 @@ -7204,6 +7344,17 @@ snapshots: '@smithy/types': 4.6.0 tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.2.1': + dependencies: + '@smithy/config-resolver': 4.3.0 + '@smithy/credential-provider-imds': 4.2.0 + '@smithy/node-config-provider': 4.3.0 + '@smithy/property-provider': 4.2.0 + '@smithy/smithy-client': 4.7.1 + '@smithy/types': 4.6.0 + tslib: 2.8.1 + optional: true + '@smithy/util-endpoints@3.2.0': dependencies: '@smithy/node-config-provider': 4.3.0 @@ -7236,6 +7387,18 @@ snapshots: '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 + '@smithy/util-stream@4.5.0': + dependencies: + '@smithy/fetch-http-handler': 5.3.1 + '@smithy/node-http-handler': 4.3.0 + '@smithy/types': 4.6.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + optional: true + '@smithy/util-uri-escape@4.2.0': dependencies: tslib: 2.8.1 @@ -7739,14 +7902,18 @@ snapshots: bare-events@2.7.0: {} - bare-fs@4.4.5: + bare-events@2.8.0: + optional: true + + bare-fs@4.4.10: dependencies: - bare-events: 2.7.0 + bare-events: 2.8.0 bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.7.0) + bare-stream: 2.7.0(bare-events@2.8.0) bare-url: 2.2.2 fast-fifo: 1.3.2 transitivePeerDependencies: + - bare-abort-controller - react-native-b4a optional: true @@ -7758,11 +7925,11 @@ snapshots: bare-os: 3.6.2 optional: true - bare-stream@2.7.0(bare-events@2.7.0): + bare-stream@2.7.0(bare-events@2.8.0): dependencies: streamx: 2.23.0 optionalDependencies: - bare-events: 2.7.0 + bare-events: 2.8.0 transitivePeerDependencies: - react-native-b4a optional: true @@ -8393,7 +8560,7 @@ snapshots: fake-indexeddb@5.0.2: {} - fake-indexeddb@6.2.2: {} + fake-indexeddb@6.2.3: {} fast-deep-equal@3.1.3: {} @@ -9890,9 +10057,9 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@24.23.0: + puppeteer-core@24.24.0: dependencies: - '@puppeteer/browsers': 2.10.10 + '@puppeteer/browsers': 2.10.11 chromium-bidi: 9.1.0(devtools-protocol@0.0.1508733) debug: 4.4.3 devtools-protocol: 0.0.1508733 @@ -9900,21 +10067,23 @@ snapshots: webdriver-bidi-protocol: 0.3.6 ws: 8.18.3 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a - supports-color - utf-8-validate - puppeteer@24.23.0(typescript@5.9.2): + puppeteer@24.24.0(typescript@5.9.2): dependencies: - '@puppeteer/browsers': 2.10.10 + '@puppeteer/browsers': 2.10.11 chromium-bidi: 9.1.0(devtools-protocol@0.0.1508733) cosmiconfig: 9.0.0(typescript@5.9.2) devtools-protocol: 0.0.1508733 - puppeteer-core: 24.23.0 + puppeteer-core: 24.24.0 typed-query-selector: 2.12.0 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - bufferutil - react-native-b4a @@ -10144,6 +10313,8 @@ snapshots: semver@7.7.2: {} + semver@7.7.3: {} + send@1.2.0: dependencies: debug: 4.4.3 @@ -10398,9 +10569,10 @@ snapshots: pump: 3.0.3 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 4.4.5 + bare-fs: 4.4.10 bare-path: 3.0.0 transitivePeerDependencies: + - bare-abort-controller - bare-buffer - react-native-b4a diff --git a/test/test.author.node.ts b/test/test.author.node+deno.ts similarity index 100% rename from test/test.author.node.ts rename to test/test.author.node+deno.ts diff --git a/test/test.ghost.node.ts b/test/test.ghost.node+deno.ts similarity index 100% rename from test/test.ghost.node.ts rename to test/test.ghost.node+deno.ts diff --git a/test/test.member.node.ts b/test/test.member.node+deno.ts similarity index 100% rename from test/test.member.node.ts rename to test/test.member.node+deno.ts diff --git a/test/test.page.node.ts b/test/test.page.node+deno.ts similarity index 100% rename from test/test.page.node.ts rename to test/test.page.node+deno.ts diff --git a/test/test.post.node.ts b/test/test.post.node+deno.ts similarity index 100% rename from test/test.post.node.ts rename to test/test.post.node+deno.ts diff --git a/test/test.syncedinstance.node.ts b/test/test.syncedinstance.node+deno.ts similarity index 100% rename from test/test.syncedinstance.node.ts rename to test/test.syncedinstance.node+deno.ts diff --git a/test/test.tag.node.ts b/test/test.tag.node+deno.ts similarity index 100% rename from test/test.tag.node.ts rename to test/test.tag.node+deno.ts diff --git a/test/test.ts.old b/test/test.ts.old deleted file mode 100644 index 13486ee..0000000 --- a/test/test.ts.old +++ /dev/null @@ -1,186 +0,0 @@ -import { expect, tap } from '@push.rocks/tapbundle'; -import * as qenv from '@push.rocks/qenv'; -const testQenv = new qenv.Qenv('./', './.nogit/'); - -import * as ghost from '../ts/index.js'; - -// make sure we can import the IPost type -import {type IPost} from '../ts/index.js'; - -let testGhostInstance: ghost.Ghost; - -tap.test('should create a valid instance of Ghost', async () => { - testGhostInstance = new ghost.Ghost({ - baseUrl: 'http://localhost:2368', - adminApiKey: await testQenv.getEnvVarOnDemand('ADMIN_APIKEY'), - contentApiKey: await testQenv.getEnvVarOnDemand('CONTENT_APIKEY'), - }); - expect(testGhostInstance).toBeInstanceOf(ghost.Ghost); -}); - -tap.test('should get posts', async () => { - const posts = await testGhostInstance.getPosts(); - expect(posts).toBeArray(); - expect(posts[0]).toBeInstanceOf(ghost.Post); - console.log(JSON.stringify(posts[0].postData, null, 2)); - posts.map((post) => { - // console.log(JSON.stringify(post.postData, null, 2)); - console.log(`-> ${post.getTitle()}`); - console.log(`by ${post.getAuthor().name}`) - console.log(post.getExcerpt()); - console.log(`===============`) - }) - -}) - -tap.test('should get all tags', async () => { - const tags = await testGhostInstance.getTags(); - expect(tags).toBeArray(); - console.log(`Found ${tags.length} tags:`); - tags.forEach((tag) => { - console.log(`-> ${tag.name} (${tag.slug})`); - }); -}); - -tap.test('should filter tags with minimatch pattern', async () => { - const allTags = await testGhostInstance.getTags(); - - if (allTags.length > 0) { - const firstTagSlug = allTags[0].slug; - const pattern = `${firstTagSlug.charAt(0)}*`; - - const filteredTags = await testGhostInstance.getTags({ filter: pattern }); - expect(filteredTags).toBeArray(); - console.log(`Filtered tags with pattern '${pattern}':`); - filteredTags.forEach((tag) => { - console.log(`-> ${tag.name} (${tag.slug})`); - expect(tag.slug).toMatch(new RegExp(`^${firstTagSlug.charAt(0)}`)); - }); - } else { - console.log('No tags available to test filtering'); - } -}); - -tap.test('should get tag by slug', async () => { - const tags = await testGhostInstance.getTags({ limit: 1 }); - if (tags.length > 0) { - const tag = await testGhostInstance.getTagBySlug(tags[0].slug); - expect(tag).toBeInstanceOf(ghost.Tag); - console.log(`Got tag: ${tag.getName()} (${tag.getSlug()})`); - } -}); - -tap.test('should get all authors', async () => { - const authors = await testGhostInstance.getAuthors(); - expect(authors).toBeArray(); - console.log(`Found ${authors.length} authors:`); - authors.forEach((author) => { - console.log(`-> ${author.getName()} (${author.getSlug()})`); - }); -}); - -tap.test('should filter authors with minimatch pattern', async () => { - const authors = await testGhostInstance.getAuthors(); - if (authors.length > 0) { - const firstAuthorSlug = authors[0].getSlug(); - const pattern = `${firstAuthorSlug.charAt(0)}*`; - const filteredAuthors = await testGhostInstance.getAuthors({ filter: pattern }); - expect(filteredAuthors).toBeArray(); - console.log(`Filtered authors with pattern '${pattern}':`); - filteredAuthors.forEach((author) => { - console.log(`-> ${author.getName()} (${author.getSlug()})`); - }); - } -}); - -tap.test('should get all pages', async () => { - const pages = await testGhostInstance.getPages(); - expect(pages).toBeArray(); - console.log(`Found ${pages.length} pages:`); - pages.forEach((page) => { - console.log(`-> ${page.getTitle()} (${page.getSlug()})`); - }); -}); - -tap.test('should filter posts by tag', async () => { - const tags = await testGhostInstance.getTags({ limit: 1 }); - if (tags.length > 0) { - const posts = await testGhostInstance.getPosts({ tag: tags[0].slug, limit: 5 }); - expect(posts).toBeArray(); - console.log(`Found ${posts.length} posts with tag '${tags[0].name}'`); - } -}); - -tap.test('should filter posts by featured status', async () => { - const featuredPosts = await testGhostInstance.getPosts({ featured: true, limit: 5 }); - expect(featuredPosts).toBeArray(); - console.log(`Found ${featuredPosts.length} featured posts`); -}); - -tap.test('should search posts', async () => { - const searchResults = await testGhostInstance.searchPosts('the', { limit: 5 }); - expect(searchResults).toBeArray(); - console.log(`Found ${searchResults.length} posts matching 'the':`); - searchResults.forEach((post) => { - console.log(`-> ${post.getTitle()}`); - }); -}); - -tap.test('should get related posts', async () => { - const posts = await testGhostInstance.getPosts({ limit: 1 }); - if (posts.length > 0) { - const relatedPosts = await testGhostInstance.getRelatedPosts(posts[0].getId(), 3); - expect(relatedPosts).toBeArray(); - console.log(`Found ${relatedPosts.length} related posts for '${posts[0].getTitle()}'`); - relatedPosts.forEach((post) => { - console.log(`-> ${post.getTitle()}`); - }); - } -}); - -tap.test('should get members', async () => { - try { - const members = await testGhostInstance.getMembers({ limit: 10 }); - expect(members).toBeArray(); - console.log(`Found ${members.length} members`); - if (members.length > 0) { - console.log(`First member: ${members[0].getEmail()}`); - } - } catch (error: any) { - if (error.message?.includes('members') || error.statusCode === 403) { - console.log('Members feature not available or requires permissions'); - } else { - throw error; - } - } -}); - -tap.test('should get settings', async () => { - try { - const settings = await testGhostInstance.getSettings(); - expect(settings).toBeTruthy(); - console.log(`Retrieved ${settings.settings?.length || 0} settings`); - } catch (error: any) { - if (error.message?.includes('undefined') || error.statusCode === 403) { - console.log('Settings API not available or requires different permissions'); - } else { - throw error; - } - } -}); - -tap.test('should get webhooks', async () => { - try { - const webhooks = await testGhostInstance.getWebhooks(); - expect(webhooks).toBeArray(); - console.log(`Found ${webhooks.length} webhooks`); - } catch (error: any) { - if (error.message?.includes('not a function') || error.statusCode === 403) { - console.log('Webhooks API not available in this Ghost version'); - } else { - throw error; - } - } -}); - -tap.start() diff --git a/test/test.webhook.node.ts b/test/test.webhook.node+deno.ts similarity index 100% rename from test/test.webhook.node.ts rename to test/test.webhook.node+deno.ts