todos-contra-el-fuego-web/packages/nimble-restivus/package.js
vjrj 8fa10e47c7 WIP: Meteor 2.5 -> 3.1 migration (package resolution done; build blocked)
Reaches release METEOR@3.1 with all package-version conflicts resolved against a
modern dockerized MongoDB 7 (replica set). NOT yet building — parked here.

Done:
- MongoDB 7 single-node replica set (docker, port 27019) as the fuegos DB,
  decoupled from the shared rsmain 3.2 (unblocks Meteor 3's mongodb driver).
- meteor update --release 3.1 resolves after swapping dead packages:
  mongo-livedata removed; facts -> facts-base; saucecode:timezoned-synced-cron
  -> quave:synced-cron; aldeed:collection2-core -> aldeed:collection2@4.0.4;
  mys:fonts removed (pinned caching-compiler@1.0.0); fourseven:scss 4.14.1 ->
  5.0.0 (Dart Sass, no node-sass) + sass installed; nimble-restivus vendored
  package loosened to accounts-password 2.x||3.x.
- Network: meteor-tool node 22 needs NODE_OPTIONS='--dns-result-order=ipv4first
  --no-network-family-autoselection' to reach warehouse.meteor.com (Happy
  Eyeballs picks an unreachable IPv6 otherwise).
- smoke/smoke.sh generalized to mongosh + configurable port for Mongo 7.

Blocked on (remaining Meteor 3 work):
1. Client bundle linker: 'Runtime is not available, but it uses features needing
   the runtime: underscore' — an old client atmosphere package needs replacing.
2. Server async/await migration (Rest.js + helpers + methods + publications +
   comments + subsUnion + migrations to *Async; no Fibers).
3. Patch vendored restivus to await async endpoint handlers.
4. cron.js SyncedCron import (quave), facts.js Facts import (facts-base).
5. React 16 -> 18 render root (createRoot).
6. SCSS @import/@use + lighten/darken -> color.adjust (dart-sass deprecations).
2026-07-13 23:25:29 +02:00

34 lines
1.3 KiB
JavaScript

Package.describe({
name: 'nimble:restivus',
summary: 'Create authenticated REST APIs in Meteor via HTTP/HTTPS. (Vendored fork: precompiled JS, accounts-password 2.x compatible.)',
version: '0.8.12',
git: 'https://github.com/kahmali/meteor-restivus.git'
});
/*
* Vendored fork of nimble:restivus@0.8.12.
*
* Why: the published Atmosphere package pins accounts-password@1.3.3, which
* conflicts with Meteor 2.x (accounts-password 2.0). The upstream source is
* CoffeeScript, and the coffeescript build plugin crashes this build machine
* (node_contextify assertion). So the .coffee sources were precompiled to plain
* JS (lib/restivus-all.js) and this package.js drops the coffeescript build
* dependency and loosens the accounts-password constraint to 2.x.
*
* The REST behavior is unchanged — verified by the REST smoke test.
*/
Package.onUse(function (api) {
api.versionsFrom('METEOR@2.3');
api.use('check');
api.use('underscore');
api.use('accounts-password@2.0.0 || 3.0.0');
api.use('simple:json-routes');
// iron-router error helper defines the `ironRouterSendErrorToResponse` global
// used by the routes, so it must load first.
api.addFiles('lib/iron-router-error-to-response.js', 'server');
api.addFiles('lib/restivus-all.js', 'server');
api.export('Restivus', 'server');
});